diff --git a/.gitignore b/.gitignore index a1c2a23..956d23c 100644 --- a/.gitignore +++ b/.gitignore @@ -19,5 +19,7 @@ *.tar.gz *.rar +.idea/ + # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* diff --git a/.idea/compiler.xml b/.idea/compiler.xml index e66f2e9..ff8be1b 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -10,7 +10,7 @@ - + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_google_code_findbugs_jsr305_1_3_9.xml b/.idea/libraries/Maven__com_google_code_findbugs_jsr305_1_3_9.xml new file mode 100644 index 0000000..0e66824 --- /dev/null +++ b/.idea/libraries/Maven__com_google_code_findbugs_jsr305_1_3_9.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_1_3.xml b/.idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_1_3.xml new file mode 100644 index 0000000..2343a7f --- /dev/null +++ b/.idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_1_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_google_guava_guava_25_0_jre.xml b/.idea/libraries/Maven__com_google_guava_guava_25_0_jre.xml new file mode 100644 index 0000000..7de6f07 --- /dev/null +++ b/.idea/libraries/Maven__com_google_guava_guava_25_0_jre.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_google_j2objc_j2objc_annotations_1_1.xml b/.idea/libraries/Maven__com_google_j2objc_j2objc_annotations_1_1.xml new file mode 100644 index 0000000..c06f999 --- /dev/null +++ b/.idea/libraries/Maven__com_google_j2objc_j2objc_annotations_1_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_squareup_okhttp3_okhttp_3_11_0.xml b/.idea/libraries/Maven__com_squareup_okhttp3_okhttp_3_11_0.xml new file mode 100644 index 0000000..0917a5b --- /dev/null +++ b/.idea/libraries/Maven__com_squareup_okhttp3_okhttp_3_11_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_squareup_okio_okio_1_14_0.xml b/.idea/libraries/Maven__com_squareup_okio_okio_1_14_0.xml new file mode 100644 index 0000000..eb4535d --- /dev/null +++ b/.idea/libraries/Maven__com_squareup_okio_okio_1_14_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_8_15.xml b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_8_15.xml new file mode 100644 index 0000000..c7e234c --- /dev/null +++ b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_8_15.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_commons_commons_exec_1_3.xml b/.idea/libraries/Maven__org_apache_commons_commons_exec_1_3.xml new file mode 100644 index 0000000..e064a82 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_commons_commons_exec_1_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_checkerframework_checker_compat_qual_2_0_0.xml b/.idea/libraries/Maven__org_checkerframework_checker_compat_qual_2_0_0.xml new file mode 100644 index 0000000..29defe6 --- /dev/null +++ b/.idea/libraries/Maven__org_checkerframework_checker_compat_qual_2_0_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_codehaus_mojo_animal_sniffer_annotations_1_14.xml b/.idea/libraries/Maven__org_codehaus_mojo_animal_sniffer_annotations_1_14.xml new file mode 100644 index 0000000..1af11e4 --- /dev/null +++ b/.idea/libraries/Maven__org_codehaus_mojo_animal_sniffer_annotations_1_14.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_api_3_141_59.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_api_3_141_59.xml new file mode 100644 index 0000000..ea95118 --- /dev/null +++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_api_3_141_59.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_chrome_driver_3_141_59.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_chrome_driver_3_141_59.xml new file mode 100644 index 0000000..aa7b6cb --- /dev/null +++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_chrome_driver_3_141_59.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_edge_driver_3_141_59.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_edge_driver_3_141_59.xml new file mode 100644 index 0000000..ecf2da2 --- /dev/null +++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_edge_driver_3_141_59.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_firefox_driver_3_141_59.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_firefox_driver_3_141_59.xml new file mode 100644 index 0000000..17f9a7c --- /dev/null +++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_firefox_driver_3_141_59.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_ie_driver_3_141_59.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_ie_driver_3_141_59.xml new file mode 100644 index 0000000..c4c9445 --- /dev/null +++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_ie_driver_3_141_59.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_java_3_141_59.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_java_3_141_59.xml new file mode 100644 index 0000000..bd12142 --- /dev/null +++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_java_3_141_59.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_opera_driver_3_141_59.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_opera_driver_3_141_59.xml new file mode 100644 index 0000000..e3736ac --- /dev/null +++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_opera_driver_3_141_59.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_remote_driver_3_141_59.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_remote_driver_3_141_59.xml new file mode 100644 index 0000000..b040848 --- /dev/null +++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_remote_driver_3_141_59.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_safari_driver_3_141_59.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_safari_driver_3_141_59.xml new file mode 100644 index 0000000..d7bd138 --- /dev/null +++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_safari_driver_3_141_59.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_support_3_141_59.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_support_3_141_59.xml new file mode 100644 index 0000000..20ef3da --- /dev/null +++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_support_3_141_59.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 35eb1dd..8306744 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -2,5 +2,6 @@ + \ No newline at end of file diff --git a/JavaCore2.iml b/JavaCore2.iml index 52c5d42..1f1c1bc 100644 --- a/JavaCore2.iml +++ b/JavaCore2.iml @@ -1,14 +1,63 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apiTests.1xml b/apiTests.1xml new file mode 100644 index 0000000..7ad7471 --- /dev/null +++ b/apiTests.1xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/chromedriver.exe b/chromedriver.exe new file mode 100644 index 0000000..4f88879 Binary files /dev/null and b/chromedriver.exe differ diff --git a/pom.xml b/pom.xml index ce21f7a..133afdc 100644 --- a/pom.xml +++ b/pom.xml @@ -14,11 +14,84 @@ maven-compiler-plugin 3.6.1 - 12 - 12 - 12 + 11 + 11 + 11 + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0-M3 + + + + ${browser}.xml + + + + org.testng + testng + 6.10 + test + + + + io.rest-assured + rest-assured-all + 4.3.0 + test + + + + org.mariadb.jdbc + mariadb-java-client + 2.6.0 + + + + org.seleniumhq.selenium + selenium-java + 3.141.59 + + + + com.google.code.gson + gson + 2.8.6 + + + + commons-io + commons-io + 2.6 + + + + org.apache.logging.log4j + log4j-api + 2.13.2 + + + org.apache.logging.log4j + log4j-core + 2.13.2 + + + io.rest-assured + json-path + 4.3.0 + test + + + io.rest-assured + rest-assured + 4.3.0 + test + + \ No newline at end of file diff --git a/src/main/java/L10/App.java b/src/main/java/L10/App.java new file mode 100644 index 0000000..c5c5185 --- /dev/null +++ b/src/main/java/L10/App.java @@ -0,0 +1,36 @@ +package L10; + +public class App { + public static void main(String[] args) { +// Dog doggy = new Dog(); +// doggy.age = 10; +// doggy.breed = "Somoed"; +// doggy.name = "Laika"; +// Dog larry = new Dog("Larry","pug",5); +// System.out.println(larry.name); +// +// doggy.bark(); +// larry.bark(); +// +// Dog alice = new Dog("Alisa"); +// alice.bark(); + + int[] xx={1,2,1}; + House house = new House(900,2,1,"Colonial", xx); + house.printHouseInfo(); + + var boat = new Boat("John"); + boat.printName(); + boat.owner = "xxx"; + + var boat1 = new Boat(50, "Beda", "Vrungel"); + boat1.printName(); + + Student valya = new Student(); + valya.setName("Valya"); + valya.setLastname("Vetrova"); + valya.setYear(5000000); + + System.out.println(valya.getName()); + } +} diff --git a/src/main/java/L10/Boat.java b/src/main/java/L10/Boat.java new file mode 100644 index 0000000..4d25da3 --- /dev/null +++ b/src/main/java/L10/Boat.java @@ -0,0 +1,32 @@ +package L10; + +public class Boat { + public int length; + public String name; + public String owner; + public int regNumber; + + public Boat(int length, String name, String owner){ + this.length=length; + this.name=name; + this.owner=owner; + } + public Boat(int length){ + this.length=length; + } + + public Boat(int l, String o){ + length=l; + owner=o; + } + public Boat(String owner){ + this.owner=owner; + } + public void printName(){ + if(name == null){ + System.out.println("no name defined"); + return; + } + System.out.println(name); + } +} diff --git a/src/main/java/L10/Coach.java b/src/main/java/L10/Coach.java new file mode 100644 index 0000000..29d064b --- /dev/null +++ b/src/main/java/L10/Coach.java @@ -0,0 +1,50 @@ +package L10; + +public class Coach { + private String name; + private String lastName; + private String sport; + + public Coach(String name, String lastName, String sport) { + this.name = name; + this.lastName = lastName; + this.sport = sport; + } + + public Coach() { + } + + public Coach(String name, String lastName) { + this.name = name; + this.lastName = lastName; + } + + public String getLastName() { + return lastName; + } + + public String getName() { + return name; + } + + public String getSport() { + return sport; + } + + public void setLastName(String lastName) { + if(lastName.length()<2){ + System.out.println("wrong lastname"); + this.lastName="00"; + return; + } + this.lastName = lastName; + } + + public void setName(String name) { + this.name = name; + } + + public void setSport(String sport) { + this.sport = sport; + } +} diff --git a/src/main/java/L10/Dog.java b/src/main/java/L10/Dog.java new file mode 100644 index 0000000..fc13717 --- /dev/null +++ b/src/main/java/L10/Dog.java @@ -0,0 +1,23 @@ +package L10; + +public class Dog { + public String name; + public String breed; + public int age; + + public Dog(String name1, String breed1, int age1){ + name = name1; + breed = breed1; + age=age1; + } + + public Dog(){} + + public Dog(String n){ + name=n; + } + + public void bark(){ + System.out.println(name+" Wow-wow"); + } +} diff --git a/src/main/java/L10/House.java b/src/main/java/L10/House.java new file mode 100644 index 0000000..7c1daee --- /dev/null +++ b/src/main/java/L10/House.java @@ -0,0 +1,22 @@ +package L10; + +public class House { + public int sq; + public int bedroom; + public int bathrooms; + public String type; + private int[] bulbs; + + public House(int s, int b, int bt, String t, int[] bulbs){ + sq=s; + bedroom=b; + bathrooms=bt; + type=t; + this.bulbs=bulbs; + } + public House(){} + + public void printHouseInfo(){ + System.out.println(sq+" "+ " " +bedroom+" "+ bathrooms+" "+type+" "+bulbs.length); + } +} diff --git a/src/main/java/L10/Person.java b/src/main/java/L10/Person.java new file mode 100644 index 0000000..da47634 --- /dev/null +++ b/src/main/java/L10/Person.java @@ -0,0 +1,19 @@ +package L10; + +public class Person { + public String name; + public String lastname; + public Person(String n, String l){ + this.name = n; + this.lastname=l; + } + public String result(int a, int b, int c){ + return name+(a+b+c); + } + + public String lastResult(int a,String b){ + return lastname+a+b; + } + + +} diff --git a/src/main/java/L10/Student.java b/src/main/java/L10/Student.java new file mode 100644 index 0000000..52c8571 --- /dev/null +++ b/src/main/java/L10/Student.java @@ -0,0 +1,41 @@ +package L10; + +public class Student { + private String name; + private String lastname; + private int year; + + public Student(String name, String lastname){ + this.name=name; + this.lastname=lastname; + } + public Student(){} + + // Getter + public String getName() { + return name; + } + // Setter + public void setName(String name) { + this.name = name; + } + public String getLastname(){ + return this.lastname; + } + public void setLastname(String l){ + lastname=l; + } + + public void setYear(int year) { + if(year>1900 && year<2010){ + this.year = year; + return; + } + System.out.println("wrong year"); + this.year=1900; + } + + public int getYear() { + return year; + } +} diff --git a/src/main/java/L11/Address.java b/src/main/java/L11/Address.java new file mode 100644 index 0000000..c2827ce --- /dev/null +++ b/src/main/java/L11/Address.java @@ -0,0 +1,26 @@ +package L11; + +public class Address { + private String street; + private String town; + private int zip; + private String state; + + public Address(String street, String town, int zip, String state) { + this.street = street; + this.town = town; + this.zip = zip; + this.state = state; + } + + + public void printAddress() { + String address = "Address{" + + "street='" + street + '\'' + + ", town='" + town + '\'' + + ", zip=" + zip + + ", state='" + state + '\'' + + '}'; + System.out.println(address); + } +} diff --git a/src/main/java/L11/App.java b/src/main/java/L11/App.java new file mode 100644 index 0000000..b8fd31c --- /dev/null +++ b/src/main/java/L11/App.java @@ -0,0 +1,43 @@ +package L11; + +public class App { + public static void main(String[] args) { + Address homeAddress = new Address("158 Broadway","New York",10016,"NY"); + + + + Name andrew = new Name("Andrew", "Dowson"); + Person ad = new Person(andrew, homeAddress); + Name nm = ad.getName(); + String l = nm.getLastName(); + String ln = ad.getName().getLastName(); + System.out.println(ln); + + + + +// +// andrew.getAddress().printAddress(); +// Vihecles vih = new Vihecles(); +// +// Farm farm = new Farm(homeAddress,vih,andrew); +// +// Address studentAddress = new Address("154 Baden Pl", "Brooklyn",23598,"NY"); +// Student maria = new Student("Maria", "Shi", studentAddress,154154154,"Math"); + + Mouse mouse = new Mouse("Logitech"); +// mouse.printInfo(); + Keyboard kb = new Keyboard("Microsoft"); +// kb.printInfo(); + Monitor monitor = new Monitor("Samsung", "XX-20",32); +// monitor.printInfo(); + // TODO Create class Motherboard and Processor and add them to SysBlock, add to constructor + SysBlock sys = new SysBlock(); + + Computer dell = new Computer(monitor,sys,mouse,kb); + dell.printInfo(); + String xx = new String("gg"); + + + } +} diff --git a/src/main/java/L11/Computer.java b/src/main/java/L11/Computer.java new file mode 100644 index 0000000..1375dc9 --- /dev/null +++ b/src/main/java/L11/Computer.java @@ -0,0 +1,23 @@ +package L11; + +public class Computer { + private Monitor monitor; + private SysBlock sysBlock; + private Mouse mouse; + private Keyboard keyboard; + + public Computer(Monitor monitor, SysBlock sysBlock, Mouse mouse, Keyboard keyboard) { + this.monitor = monitor; + this.sysBlock = sysBlock; + this.mouse = mouse; + this.keyboard = keyboard; + } + public void printInfo(){ + monitor.printInfo(); + keyboard.printInfo(); + mouse.printInfo(); +// sysBlock.printInfo(); + + } + +} diff --git a/src/main/java/L11/Farm.java b/src/main/java/L11/Farm.java new file mode 100644 index 0000000..67de17f --- /dev/null +++ b/src/main/java/L11/Farm.java @@ -0,0 +1,13 @@ +package L11; + +public class Farm { + private Address address; + private Vihecles vihecles; + private Person owner; + + public Farm(Address address, Vihecles vihecles, Person owner) { + this.address = address; + this.vihecles = vihecles; + this.owner = owner; + } +} diff --git a/src/main/java/L11/Keyboard.java b/src/main/java/L11/Keyboard.java new file mode 100644 index 0000000..a30d1b2 --- /dev/null +++ b/src/main/java/L11/Keyboard.java @@ -0,0 +1,12 @@ +package L11; + +public class Keyboard { + private String brand; + + public Keyboard(String brand) { + this.brand = brand; + } + public void printInfo(){ + System.out.println("Keyboard brand = " + brand); + } +} diff --git a/src/main/java/L11/Monitor.java b/src/main/java/L11/Monitor.java new file mode 100644 index 0000000..a4a5bfe --- /dev/null +++ b/src/main/java/L11/Monitor.java @@ -0,0 +1,18 @@ +package L11; + +public class Monitor { + private String brand; + private String model; + private int diag; + + public Monitor(String brand, String model, int diag) { + this.brand = brand; + this.model = model; + this.diag = diag; + } + + public void printInfo() { + String xx= "Monitor{brand=" + brand + ", model=" + model + ", diag=" + diag +'}'; + System.out.println(xx); + } +} diff --git a/src/main/java/L11/Mouse.java b/src/main/java/L11/Mouse.java new file mode 100644 index 0000000..099624d --- /dev/null +++ b/src/main/java/L11/Mouse.java @@ -0,0 +1,12 @@ +package L11; + +public class Mouse { + private String brand; + + public Mouse(String brand) { + this.brand = brand; + } + public void printInfo(){ + System.out.println("Mouse = "+ brand); + } +} diff --git a/src/main/java/L11/Name.java b/src/main/java/L11/Name.java new file mode 100644 index 0000000..62d85fa --- /dev/null +++ b/src/main/java/L11/Name.java @@ -0,0 +1,19 @@ +package L11; + +public class Name { + private String name; + private String lastName; + + public Name(String name, String lastName) { + this.name = name; + this.lastName = lastName; + } + + public String getName() { + return name; + } + + public String getLastName() { + return lastName; + } +} diff --git a/src/main/java/L11/Person.java b/src/main/java/L11/Person.java new file mode 100644 index 0000000..d0967d1 --- /dev/null +++ b/src/main/java/L11/Person.java @@ -0,0 +1,19 @@ +package L11; + +public class Person { + private Name name; + private Address address; + + public Person(Name name, Address address) { + this.name = name; + this.address = address; + } + + public Name getName() { + return name; + } + + public Address getAddress() { + return address; + } +} diff --git a/src/main/java/L11/Student.java b/src/main/java/L11/Student.java new file mode 100644 index 0000000..f5ac4ee --- /dev/null +++ b/src/main/java/L11/Student.java @@ -0,0 +1,17 @@ +package L11; + +public class Student { + private String name; + private String lastName; + private Address address; + private int id; + private String major; + + public Student(String name, String lastName, Address address, int id, String major) { + this.name = name; + this.lastName = lastName; + this.address = address; + this.id = id; + this.major = major; + } +} diff --git a/src/main/java/L11/SysBlock.java b/src/main/java/L11/SysBlock.java new file mode 100644 index 0000000..6015d41 --- /dev/null +++ b/src/main/java/L11/SysBlock.java @@ -0,0 +1,4 @@ +package L11; + +public class SysBlock { +} diff --git a/src/main/java/L11/Vihecles.java b/src/main/java/L11/Vihecles.java new file mode 100644 index 0000000..4829ea3 --- /dev/null +++ b/src/main/java/L11/Vihecles.java @@ -0,0 +1,4 @@ +package L11; + +public class Vihecles { +} diff --git a/src/main/java/L12/Address.java b/src/main/java/L12/Address.java new file mode 100644 index 0000000..a572863 --- /dev/null +++ b/src/main/java/L12/Address.java @@ -0,0 +1,4 @@ +package L12; + +public class Address { +} diff --git a/src/main/java/L12/App.java b/src/main/java/L12/App.java new file mode 100644 index 0000000..d516c00 --- /dev/null +++ b/src/main/java/L12/App.java @@ -0,0 +1,30 @@ +package L12; + +public class App { + public static void main(String[] args) { + Address a1 = new Address(); + Person person = new Person("John", "Hopkins",1950,"male",a1); + + Address a2 = new Address(); + Student student = new Student("Samuel", "Jackson",1960,"male",a2,"Math","MBA"); + + Address a3 = new Address(); + Teacher teacher = new Teacher("Patricia","Lee",1980,"female",a3,"Biology"); + + GraduatedStudent st = new GraduatedStudent("Mik","Wei",1990,"male",a1,"History","MBA"); + + System.out.println(student.getName()); + + Pug poppy = new Pug("poppy", "Blue"); + poppy.bark(); + Chau prince = new Chau("prince",50); + prince.bark(); + + Person person2 = new Person(); + person2.setName("Igor"); + + Dog dog = poppy; + + + } +} diff --git a/src/main/java/L12/Chau.java b/src/main/java/L12/Chau.java new file mode 100644 index 0000000..4b618e2 --- /dev/null +++ b/src/main/java/L12/Chau.java @@ -0,0 +1,10 @@ +package L12; + +public class Chau extends Dog { + private int height; + + public Chau(String name, int height) { + super(name); + this.height = height; + } +} diff --git a/src/main/java/L12/City.java b/src/main/java/L12/City.java new file mode 100644 index 0000000..dcb424c --- /dev/null +++ b/src/main/java/L12/City.java @@ -0,0 +1,6 @@ +package L12; + +public class City { + protected int population; + protected String name; +} diff --git a/src/main/java/L12/Dog.java b/src/main/java/L12/Dog.java new file mode 100644 index 0000000..52885bd --- /dev/null +++ b/src/main/java/L12/Dog.java @@ -0,0 +1,12 @@ +package L12; + +public class Dog { + private String name; + + public Dog(String name) { + this.name = name; + } + public void bark(){ + System.out.println(name + " wow-wow"); + } +} diff --git a/src/main/java/L12/GraduatedStudent.java b/src/main/java/L12/GraduatedStudent.java new file mode 100644 index 0000000..a488eba --- /dev/null +++ b/src/main/java/L12/GraduatedStudent.java @@ -0,0 +1,7 @@ +package L12; + +public class GraduatedStudent extends Student { + public GraduatedStudent(String name, String lastName, int year, String gender, Address address, String major, String program) { + super(name, lastName, year, gender, address, major, program); + } +} diff --git a/src/main/java/L12/Person.java b/src/main/java/L12/Person.java new file mode 100644 index 0000000..cbebc70 --- /dev/null +++ b/src/main/java/L12/Person.java @@ -0,0 +1,43 @@ +package L12; + +public class Person{ + protected String name; + protected String lastName; + protected int year; + protected String gender; + protected Address address; + + public Person() {} + + public Person(String name, String lastName, int year, String gender, Address address) { + this.name = name; + this.lastName = lastName; + this.year = year; + this.gender = gender; + this.address = address; + } + + public void setName(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public String getLastName() { + return lastName; + } + + public int getYear() { + return year; + } + + public String getGender() { + return gender; + } + + public Address getAddress() { + return address; + } +} diff --git a/src/main/java/L12/Pug.java b/src/main/java/L12/Pug.java new file mode 100644 index 0000000..52eaa79 --- /dev/null +++ b/src/main/java/L12/Pug.java @@ -0,0 +1,9 @@ +package L12; + +public class Pug extends Dog { + private String color; + public Pug(String name, String color) { + super(name); + this.color=color; + } +} diff --git a/src/main/java/L12/Student.java b/src/main/java/L12/Student.java new file mode 100644 index 0000000..819fee6 --- /dev/null +++ b/src/main/java/L12/Student.java @@ -0,0 +1,20 @@ +package L12; + +public class Student extends Person{ + protected String major; + protected String program; + + public Student(String name, String lastName, int year, String gender, Address address, String major, String program) { + super(name, lastName, year, gender, address); + this.major = major; + this.program = program; + } + + public String getMajor() { + return major; + } + + public String getProgram() { + return program; + } +} diff --git a/src/main/java/L12/Teacher.java b/src/main/java/L12/Teacher.java new file mode 100644 index 0000000..08a0bdd --- /dev/null +++ b/src/main/java/L12/Teacher.java @@ -0,0 +1,14 @@ +package L12; + +public final class Teacher extends Person{ + private String subject; + + public Teacher(String name, String lastName, int year, String gender, Address address, String subject) { + super(name,lastName,year,gender,address); + this.subject = subject; + } + + public String getSubject() { + return subject; + } +} diff --git a/src/main/java/L12/Village.java b/src/main/java/L12/Village.java new file mode 100644 index 0000000..7bd95d9 --- /dev/null +++ b/src/main/java/L12/Village.java @@ -0,0 +1,4 @@ +package L12; + +public class Village extends City{ +} diff --git a/src/main/java/L13/App.java b/src/main/java/L13/App.java new file mode 100644 index 0000000..538cbb6 --- /dev/null +++ b/src/main/java/L13/App.java @@ -0,0 +1,24 @@ +package L13; + +public class App { + public static void main(String[] args) { +// Person ivan = new Person(20); +// ivan.breathe(); +// Child rose = new Child(); +// Human[] h1 ={ivan,rose}; +// Human vv = rose; +// DeskLight l333 = new ArmDeskLampWithClamp(25, "Philips","L333",1); +// DeskLight standard = new DeskLight(32, "Mono", "St"); +// +// l333.StandardEBulb(); +// standard.StandardEBulb(); + + Dog chau = new ChauChau(); + Dog colly = new Colly(); + + chau.bark(); + colly.bark(); + + + } +} diff --git a/src/main/java/L13/ArmDeskLampWithClamp.java b/src/main/java/L13/ArmDeskLampWithClamp.java new file mode 100644 index 0000000..a5c2e37 --- /dev/null +++ b/src/main/java/L13/ArmDeskLampWithClamp.java @@ -0,0 +1,22 @@ +package L13; + +public class ArmDeskLampWithClamp extends DeskLight { + private int numberOfArms; + public ArmDeskLampWithClamp(int price, String brand, String model, int numberOfArms) { + super(price, brand, model); + this.numberOfArms = numberOfArms; + } + + public void setNumberOfArms(int numberOfArms) { + this.numberOfArms = numberOfArms; + } + + public int getNumberOfArms() { + return numberOfArms; + } + + @Override + public void StandardEBulb() { + System.out.println("I use E14 bulb"); + } +} diff --git a/src/main/java/L13/Bulb.java b/src/main/java/L13/Bulb.java new file mode 100644 index 0000000..57a5540 --- /dev/null +++ b/src/main/java/L13/Bulb.java @@ -0,0 +1,5 @@ +package L13; + +public interface Bulb { + public void StandardEBulb(); +} diff --git a/src/main/java/L13/ChauChau.java b/src/main/java/L13/ChauChau.java new file mode 100644 index 0000000..0adaae6 --- /dev/null +++ b/src/main/java/L13/ChauChau.java @@ -0,0 +1,4 @@ +package L13; + +public class ChauChau extends Dog { +} diff --git a/src/main/java/L13/Child.java b/src/main/java/L13/Child.java new file mode 100644 index 0000000..9216fe6 --- /dev/null +++ b/src/main/java/L13/Child.java @@ -0,0 +1,18 @@ +package L13; + +public class Child implements Human { + @Override + public void breathe() { + + } + + @Override + public void think() { + + } + + @Override + public int getAge() { + return 0; + } +} diff --git a/src/main/java/L13/Colly.java b/src/main/java/L13/Colly.java new file mode 100644 index 0000000..98cec1a --- /dev/null +++ b/src/main/java/L13/Colly.java @@ -0,0 +1,8 @@ +package L13; + +public class Colly extends Dog { + @Override + public void bark() { + System.out.println("weee-weee"); + } +} diff --git a/src/main/java/L13/DeskLight.java b/src/main/java/L13/DeskLight.java new file mode 100644 index 0000000..dbc5ecd --- /dev/null +++ b/src/main/java/L13/DeskLight.java @@ -0,0 +1,47 @@ +package L13; + +public class DeskLight implements PowerSocket, Bulb { + protected int price; + protected String brand; + protected String model; + + public DeskLight(int price, String brand, String model) { + this.price = price; + this.brand = brand; + this.model = model; + } + + public int getPrice() { + return price; + } + + public void setPrice(int price) { + this.price = price; + } + + public String getBrand() { + return brand; + } + + public void setBrand(String brand) { + this.brand = brand; + } + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model; + } + + @Override + public void StandardEBulb() { + System.out.println("I use standard E27 Bulb"); + } + + @Override + public void standardUsSocket() { + System.out.println("I use standard US socket"); + } +} diff --git a/src/main/java/L13/Dog.java b/src/main/java/L13/Dog.java new file mode 100644 index 0000000..19731fd --- /dev/null +++ b/src/main/java/L13/Dog.java @@ -0,0 +1,9 @@ +package L13; + +public class Dog { + + public void bark(){ + System.out.println("wow-wow"); + } + +} diff --git a/src/main/java/L13/Human.java b/src/main/java/L13/Human.java new file mode 100644 index 0000000..6711b72 --- /dev/null +++ b/src/main/java/L13/Human.java @@ -0,0 +1,8 @@ +package L13; + +public interface Human { + //abstract method + public void breathe(); + public void think(); + public int getAge(); +} diff --git a/src/main/java/L13/Person.java b/src/main/java/L13/Person.java new file mode 100644 index 0000000..b412dac --- /dev/null +++ b/src/main/java/L13/Person.java @@ -0,0 +1,25 @@ +package L13; + +public class Person implements Human{ + private int age; + + public Person(int age) { + this.age = age; + } + + public void breathe() { + System.out.println("I can breathe"); + } + + public void think() { + System.out.println("I'm thinking"); + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } +} diff --git a/src/main/java/L13/PowerSocket.java b/src/main/java/L13/PowerSocket.java new file mode 100644 index 0000000..d3c5eb3 --- /dev/null +++ b/src/main/java/L13/PowerSocket.java @@ -0,0 +1,5 @@ +package L13; + +public interface PowerSocket { + public void standardUsSocket(); +} diff --git a/src/main/java/L13/Student.java b/src/main/java/L13/Student.java new file mode 100644 index 0000000..59c94c0 --- /dev/null +++ b/src/main/java/L13/Student.java @@ -0,0 +1,7 @@ +package L13; + +public class Student extends Person { + public Student(int age) { + super(age); + } +} diff --git a/src/main/java/L9/App.java b/src/main/java/L9/App.java new file mode 100644 index 0000000..459907f --- /dev/null +++ b/src/main/java/L9/App.java @@ -0,0 +1,70 @@ +package L9; + +public class App { + public static void main(String[] args) { + var xx = new String(); + var arr = new int[10]; + Car car = new Car(); + int x= 5; + + car.brand = "Toyota"; + car.model = "Camry"; + car.color = "Silver"; + car.year = 2015; + car.price = 13000; + + Car yourcar = new Car(); + yourcar.model="Civic"; + yourcar.brand="Honda"; + yourcar.year = 2018; + yourcar.price = 18000; + yourcar.color = "White"; + + System.out.println("My new car is "+car.brand+" "+car.model +" "+ car.year); + + Person anna = new Person(); + anna.name="Anna"; + anna.lastName="Ivanova"; + anna.eyeColor="Blue"; + anna.height=102; + anna.year=2015; + + var boris = new Person(); + boris.name = "Boris"; + boris.lastName = "Petrov"; + boris.year = 2015; + boris.height = 110; + boris.eyeColor = "Brown"; + + Fruit ff = new Fruit(); + ff.name = "apple"; + ff.color="green"; + + var sharik = new Dog(); + sharik.name = "Sharik"; + sharik.age = 2; + sharik.breed = "Dvorterier"; + + Dog lord = new Dog(); + lord.name = "Lord"; + lord.age = 3; + lord.breed = "Dog"; + + + if(sharik.age > lord.age){ + System.out.println("Sharik is older"); + }else { + System.out.println("Lord is older"); + } + +// lord.bark(); +// sharik.bark(); + + lord.sleep(); + sharik.bark(); + + car.printInfo(); + yourcar.drive(); + anna.printInfo(); + } +} diff --git a/src/main/java/L9/Car.java b/src/main/java/L9/Car.java new file mode 100644 index 0000000..415ad58 --- /dev/null +++ b/src/main/java/L9/Car.java @@ -0,0 +1,18 @@ +package L9; + +public class Car { + public String brand; + public String model; + public int year; + public String color; + public double price; + + public void drive(){ + System.out.println(brand + " " + model +" is driving"); + } + + public void printInfo(){ + System.out.println("\tBrand -> "+ brand+"\n\tModel -> "+ + model + "\n\tYear -> "+year + "\n\tColor -> "+ color + "\n\tPrice -> "+price); + } +} diff --git a/src/main/java/L9/Dog.java b/src/main/java/L9/Dog.java new file mode 100644 index 0000000..01ef118 --- /dev/null +++ b/src/main/java/L9/Dog.java @@ -0,0 +1,14 @@ +package L9; + +public class Dog { + public String name; + public String breed; + public int age; + + public void bark(){ + System.out.println(name + " is barking"); + } + public void sleep(){ + System.out.println(name + " is sleeping"); + } +} diff --git a/src/main/java/L9/Fruit.java b/src/main/java/L9/Fruit.java new file mode 100644 index 0000000..8d04410 --- /dev/null +++ b/src/main/java/L9/Fruit.java @@ -0,0 +1,6 @@ +package L9; + +public class Fruit { + public String name; + public String color; +} diff --git a/src/main/java/L9/Person.java b/src/main/java/L9/Person.java new file mode 100644 index 0000000..edb717d --- /dev/null +++ b/src/main/java/L9/Person.java @@ -0,0 +1,14 @@ +package L9; + +public class Person { + public String name; + public String lastName; + public int year; + public int height; + public String eyeColor; + + public void printInfo(){ + System.out.println("\tName -> "+ name+"\n\tLast Name -> "+ + lastName + "\n\tYear -> "+year + "\n\tEye Color -> "+ eyeColor + "\n\tHeight -> "+height); + } +} diff --git a/src/main/java/Lesson8.java b/src/main/java/Lesson8.java new file mode 100644 index 0000000..b79a095 --- /dev/null +++ b/src/main/java/Lesson8.java @@ -0,0 +1,39 @@ +public class Lesson8 { + public static void main(String[] args) { + System.out.println(sum(1,2)); + int xx = sum(1,3,2); + int zz = sum(1,1,2,2); + String str = sum("abc","cde", "ddd"); + System.out.println(str); + System.out.println(sum("ddd","eee",555)); + System.out.println(sum("ddd","555")); + } + + public static int sum(int a, int b){ + return a+b; + } + public static double sum(double x, double z){ + return x+z; + } + public static int sum(int a, int b, int c){ + return a+b+c; + } + public static double sum(double x, double z, double y){ + return x+z+y; + } + public static int sum(int a,int b, int c,int d){ + return a+b+c+d; + } + public static double sum(double x, double z, double y, double a){ + return x+z+y +a; + } + public static String sum(String a, String b){ + return a+b; + } + public static String sum(String a, String b, String c){ + return a+b+c; + } + public static String sum(String a, String b, int c){ + return a+b+c; + } +} diff --git a/src/main/java/Types/App.java b/src/main/java/Types/App.java new file mode 100644 index 0000000..2a20dd8 --- /dev/null +++ b/src/main/java/Types/App.java @@ -0,0 +1,32 @@ +package Types; + +import java.util.Date; +import java.util.Random; + +public class App { + + public static void main(String[] args) { + String str = " I'm a string"; + int a = 5; + System.out.println(a); + Plane p = new Plane(); + p.name="Boing"; + + System.out.println(p.getInfo()); + + int[] arr = {1,1,3}; + + for (int v:arr) { + System.out.println(v); + } + System.out.println(p); + + Date xx = new Date(); + Random random = new Random(); + + System.out.println(xx); + + + + } +} diff --git a/src/main/java/Types/Plane.java b/src/main/java/Types/Plane.java new file mode 100644 index 0000000..2db294f --- /dev/null +++ b/src/main/java/Types/Plane.java @@ -0,0 +1,14 @@ +package Types; + +public class Plane { + public String name; + + @Override + public String toString() { + return "name=" + name; + } + + public String getInfo(){ + return name; + } +} diff --git a/src/main/java/chw15/App.java b/src/main/java/chw15/App.java new file mode 100644 index 0000000..635cb36 --- /dev/null +++ b/src/main/java/chw15/App.java @@ -0,0 +1,23 @@ +package chw15; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class App { + public static void main(String[] args) { + List people = new ArrayList<>(); + var p1 = new Person("Vlad"); + people.add(p1); + + List fruits = new ArrayList<>(); + fruits.add(new Fruit("Banana")); + fruits.add(new Fruit("Apple")); + + Map iLoveFruit = new HashMap<>(); + iLoveFruit.put(new Person("Ivan"),new Fruit("Peach")); + + + } +} diff --git a/src/main/java/chw15/Fruit.java b/src/main/java/chw15/Fruit.java new file mode 100644 index 0000000..bb6d97d --- /dev/null +++ b/src/main/java/chw15/Fruit.java @@ -0,0 +1,18 @@ +package chw15; + +public class Fruit { + private String name; + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Fruit(String name) { + this.name = name; + } +} diff --git a/src/main/java/chw15/Person.java b/src/main/java/chw15/Person.java new file mode 100644 index 0000000..8901179 --- /dev/null +++ b/src/main/java/chw15/Person.java @@ -0,0 +1,9 @@ +package chw15; + +public class Person { + private String name; + + public Person(String name) { + this.name = name; + } +} diff --git a/src/main/java/hw7.java b/src/main/java/hw7.java new file mode 100644 index 0000000..1676bbc --- /dev/null +++ b/src/main/java/hw7.java @@ -0,0 +1,57 @@ +import java.util.Arrays; +import java.util.Collections; + +public class hw7 { + public static void main(String[] args) { + int[] arr1 = {1,4,9,9}; + System.out.println(sum(arr1)); + + int[] arr2 = {55,63,11,11,21,231,234,121,456,789,0,3546,345,33232}; + System.out.println(sum(arr2)); + + int[] arr3 = {0}; + System.out.println(sum(arr3)); + + sort(arr1); + sort(arr2); + sort(arr3); + + System.out.println(); + System.out.println("min = "+ min_max(arr1)[0] + ", max = "+ min_max(arr1)[1]); + System.out.println("min = "+ min_max(arr2)[0] + ", max = "+ min_max(arr2)[1]); + System.out.println("min = "+ min_max(arr3)[0] + ", max = "+ min_max(arr3)[1]); + } + + public static int[] min_max(int[]arr){ + int min = arr[0]; + int max = arr[0]; + + for (int v:arr){ + if(v>max){ + max=v; + } + if(v=0; i--){ + System.out.print(arr[i]+" "); + } +// for (int v:arr){ +// System.out.print(v+" "); +// } + } + public static int sum(int[] arr){ + int sum = 0; + for(int v:arr){ + sum=sum+v; + } + return sum; + } +} diff --git a/src/main/java/hw8/app.java b/src/main/java/hw8/app.java new file mode 100644 index 0000000..5650a13 --- /dev/null +++ b/src/main/java/hw8/app.java @@ -0,0 +1,7 @@ +package hw8; + +public class app { + public static void main(String[] args) { + + } +} diff --git a/src/main/java/l14/App.java b/src/main/java/l14/App.java new file mode 100644 index 0000000..ecac28b --- /dev/null +++ b/src/main/java/l14/App.java @@ -0,0 +1,44 @@ +package l14; + +public final class App { + public static void main(String[] args) { + final int MYAGE = 457; + + Colors car=Colors.WHITE; + Colors apple = Colors.RED; + Colors peach = Colors.GREEN; + + Vehicle myCar = new Vehicle(Brand.MAZDA,"626",2018,car); + + String str = "Red";// "RED", "red" + + Integer a1 = 10; + int a2 = 10; + + Double b1=2.3; + double b2=2.3; + + Boolean c1 = true; + boolean c2= true; + + Character d1='w'; + char d2='w'; + + Object xx = Colors.WHITE; + Object xy = myCar; + + Person per = new Student(); + Person per1 = new Teacher(); +// Person per2 = new Person(); - нельзя создавать объект абстрактного класса!!! + + + + +// Person person = new Person(); + + + + } + + +} diff --git a/src/main/java/l14/Brand.java b/src/main/java/l14/Brand.java new file mode 100644 index 0000000..9b56f78 --- /dev/null +++ b/src/main/java/l14/Brand.java @@ -0,0 +1,11 @@ +package l14; + +public enum Brand { + MAZDA, + TOYOTA, + HONDA, + FORD, + MERCEDES, + BMW, + TESLA +} diff --git a/src/main/java/l14/Colors.java b/src/main/java/l14/Colors.java new file mode 100644 index 0000000..20bfb20 --- /dev/null +++ b/src/main/java/l14/Colors.java @@ -0,0 +1,9 @@ +package l14; + +public enum Colors { + RED, + WHITE, + BLACK, + GREEN, + BLUE +} diff --git a/src/main/java/l14/Fruits.java b/src/main/java/l14/Fruits.java new file mode 100644 index 0000000..6cd8351 --- /dev/null +++ b/src/main/java/l14/Fruits.java @@ -0,0 +1,8 @@ +package l14; + +public enum Fruits { + APPLE, + PEACH, + PINEAPPLE, + GRAPE +} diff --git a/src/main/java/l14/Person.java b/src/main/java/l14/Person.java new file mode 100644 index 0000000..86a46c5 --- /dev/null +++ b/src/main/java/l14/Person.java @@ -0,0 +1,8 @@ +package l14; + +public abstract class Person{ + protected String name; + protected String lastName; + + public abstract void getFullName(); +} diff --git a/src/main/java/l14/Student.java b/src/main/java/l14/Student.java new file mode 100644 index 0000000..e9ae179 --- /dev/null +++ b/src/main/java/l14/Student.java @@ -0,0 +1,8 @@ +package l14; + +public class Student extends Person { + @Override + public void getFullName() { + + } +} diff --git a/src/main/java/l14/Teacher.java b/src/main/java/l14/Teacher.java new file mode 100644 index 0000000..ba12fa3 --- /dev/null +++ b/src/main/java/l14/Teacher.java @@ -0,0 +1,8 @@ +package l14; + +public class Teacher extends Person { + @Override + public void getFullName() { + + } +} diff --git a/src/main/java/l14/Vehicle.java b/src/main/java/l14/Vehicle.java new file mode 100644 index 0000000..24272c3 --- /dev/null +++ b/src/main/java/l14/Vehicle.java @@ -0,0 +1,15 @@ +package l14; + +public class Vehicle { + private Brand brand; + private String model; + private int year; + private Colors color; + + public Vehicle(Brand brand, String model, int year, Colors color) { + this.brand = brand; + this.model = model; + this.year = year; + this.color = color; + } +} diff --git a/src/main/java/l15/App.java b/src/main/java/l15/App.java new file mode 100644 index 0000000..69f90d1 --- /dev/null +++ b/src/main/java/l15/App.java @@ -0,0 +1,55 @@ +package l15; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class App { + public static void main(String[] args) { + List names = new ArrayList(); + String[] namesOld = new String[5]; + + names.add("Shaun"); + names.add("James"); + names.add("John"); + names.add("Poul"); + names.add("Shaun"); + System.out.println(names); + List colors = new ArrayList(Arrays.asList("Red", "Green")); + +// namesOld[0] = "James"; +// namesOld[1] = "John"; + names.add(0,"David"); + System.out.println(names); +// System.out.println(names.get(0)); + names.set(3,"Andrew"); + System.out.println(names); +// System.out.println(names.get(3)); + names.remove(2); + System.out.println(names); +// System.out.println(namesOld[0]); +// System.out.println(names.get(2)); + System.out.println(names.size()); + names.remove("Shaun"); + System.out.println(names); + System.out.println(names.contains("Shaun")); + System.out.println(names.contains("Freddy")); + List temp = new ArrayList<>(); + System.out.println(names.size()); + + for (String v:names) { + System.out.println(v); + } + + names.forEach(x-> System.out.println(x)); + + names.forEach(System.out::println); + + List people = new ArrayList<>(); + +// ArrayList xx = null; +// xx.add(23.6); + + + } +} diff --git a/src/main/java/l15/Person.java b/src/main/java/l15/Person.java new file mode 100644 index 0000000..a82178b --- /dev/null +++ b/src/main/java/l15/Person.java @@ -0,0 +1,11 @@ +package l15; + +import java.util.List; + +public class Person { + public List names; + + public Person(List names) { + this.names = names; + } +} diff --git a/src/main/java/l16/App.java b/src/main/java/l16/App.java new file mode 100644 index 0000000..8a777d8 --- /dev/null +++ b/src/main/java/l16/App.java @@ -0,0 +1,53 @@ +package l16; + +import java.util.HashMap; +import java.util.Map; + +public class App { + public static void main(String[] args) { + Map countries = new HashMap(); + countries.put("USA","Washington"); + countries.put("Germany","Berlin"); + countries.put("Bulgaria","Sofia"); + + System.out.println(countries); + System.out.println(countries.size()); + countries.replace("Germany","Bonn"); + System.out.println(countries); + countries.put("Bulgaria","Tirana"); + countries.put("Albania","Tirana"); + System.out.println(countries); + System.out.println(countries.get("Germany")); + System.out.println(countries.get("GermanY")); + countries.remove("Bulgaria"); + System.out.println(countries); + + for (Map.Entry kv:countries.entrySet()){ + System.out.println(kv.getKey()); + System.out.println(kv.getValue()); + } + + for (String key: countries.keySet()){ + System.out.println(key); + } + + for (String value:countries.values()){ + System.out.println(value); + } + +// Map colors= new HashMap<>(); +// colors.put(0,"Red"); +// colors.put(1,"Black"); +// colors.put(2,"Green"); +// colors.get(1); + Map colors = new HashMap<>(); + colors.put("red","apple"); + colors.put("black","coal"); + colors.put("white","snow"); + colors.put("green","apple"); + + Map employ = new HashMap<>(); + employ.put(new Person(),new Job()); + + } +} diff --git a/src/main/java/l16/Job.java b/src/main/java/l16/Job.java new file mode 100644 index 0000000..652dc09 --- /dev/null +++ b/src/main/java/l16/Job.java @@ -0,0 +1,4 @@ +package l16; + +public class Job { +} diff --git a/src/main/java/l16/Person.java b/src/main/java/l16/Person.java new file mode 100644 index 0000000..1ade287 --- /dev/null +++ b/src/main/java/l16/Person.java @@ -0,0 +1,4 @@ +package l16; + +public class Person { +} diff --git a/src/main/java/l17/App.java b/src/main/java/l17/App.java new file mode 100644 index 0000000..14994f4 --- /dev/null +++ b/src/main/java/l17/App.java @@ -0,0 +1,31 @@ +package l17; + +public class App { + public static void main(String[] args) { + int[] xx = {2,5,1}; + + try { + int vv = xx[1]; + int vvv = 6/0; + System.out.println("I'm not wrong"); + } catch (ArrayIndexOutOfBoundsException err){ + System.out.println("I'm WRONG"); + } catch (ArithmeticException err){ + System.out.println("Divide by ZERO"); + } catch (Exception err) { + System.out.println("Unknown exception"); +// throw new Exception("Errrrrr"); + } + finally { + System.out.println("I will run in any case"); + } + + var p = new Person("Ivan", "Krotov"); + var p2 = new Person("Doris","Sun"); + Person.counter=10; + Person.setCounter(15); + System.out.println(Person.getCounter()); + + } + +} diff --git a/src/main/java/l17/Person.java b/src/main/java/l17/Person.java new file mode 100644 index 0000000..0a39e43 --- /dev/null +++ b/src/main/java/l17/Person.java @@ -0,0 +1,20 @@ +package l17; + +public class Person { + private String name; + private String lastName; + public static int counter; + + public Person(String name, String lastName) { + this.name = name; + this.lastName = lastName; + } + + public static int getCounter() { + return counter; + } + + public static void setCounter(int counter) { + Person.counter = counter; + } +} diff --git a/src/main/java/string/App.java b/src/main/java/string/App.java new file mode 100644 index 0000000..4d34874 --- /dev/null +++ b/src/main/java/string/App.java @@ -0,0 +1,36 @@ +package string; + +public class App { + public static void main(String[] args) { + String str = " Hello students, today is a good day "; + System.out.println(str.length()); //Size of string + System.out.println(str.contains("ello")); // Contains substring + System.out.println(str.replace('o','0')); // Replace single char + System.out.println(str.replace("ello","ELLO")); // Replace substring + System.out.println(str.charAt(0)); // Return char at index + System.out.println(str.compareTo("Hello students, today is a good day")); + boolean xx = "ddd".equals("ttt"); + System.out.println(str.compareToIgnoreCase("HellO stUdents, today is a good day")); + System.out.println(str.concat(" - because today is Sunday")); + //System.out.println(str.indent(5)); // Set intend - отступ + var words = str.split(" "); + System.out.println(words[1]); + String url = "www.strings.com"; + var domen = url.split("\\.")[1]; + System.out.println(domen); + System.out.println(String.join("-",words)); + + System.out.println(str.trim()); // trim String + System.out.println(str.toLowerCase()); + System.out.println(str.toUpperCase()); + System.out.println(str.substring(2,5)); + System.out.println(str.substring(str.length() - 3)); + + var name = "Some Name"; + + System.out.printf("My name is %s", name); + System.out.println(); + + System.out.println("My name is "+name); + } +} diff --git a/src/test/java/KoelSimpleTest.java b/src/test/java/KoelSimpleTest.java new file mode 100644 index 0000000..6d49e66 --- /dev/null +++ b/src/test/java/KoelSimpleTest.java @@ -0,0 +1,98 @@ +import org.openqa.selenium.*; +import org.openqa.selenium.chrome.ChromeDriver; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.FluentWait; +import org.openqa.selenium.support.ui.WebDriverWait; +import org.testng.Assert; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import java.time.Duration; +import java.util.List; +import java.util.concurrent.TimeUnit; + +public class KoelSimpleTest { + private WebDriver driver; + //private WebDriverWait explicitWait; + private FluentWait fluentWait; + + @BeforeMethod + public void startUp() { + System.setProperty("webdriver.chrome.driver", "chromedriver.exe"); + driver = new ChromeDriver(); + + // explicitWait = new WebDriverWait(driver, 10); + fluentWait = new FluentWait(driver) + .withTimeout(Duration.ofSeconds(10)) + .pollingEvery(Duration.ofMillis(100)) + .ignoring(Exception.class) + .ignoring(StaleElementReferenceException.class); + +// driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); + driver.get("https://koelapp.testpro.io/"); + } + + @AfterMethod + public void tearDown() throws InterruptedException { + Thread.sleep(5000); + driver.quit(); + } + + @Test(enabled = false) + public void login_CorrectCredentials_LoggedToApp() { + var email = driver.findElement(By.xpath("//*[@type='email']")); + email.sendKeys("testpro.user02@testpro.io"); + + var password = driver.findElement(By.xpath("//*[@type='password']")); + password.sendKeys("te$t$tudent02"); + + var loginButton = driver.findElement(By.xpath("//*[@type='submit']")); + loginButton.click(); + + var homeButton = driver.findElement(By.xpath("//*[@class='home active']")); + homeButton.click(); + WebElement addButton = driver.findElement(By.cssSelector(".fa.fa-plus-circle")); + addButton.click(); + WebElement newNameField = driver.findElement(By.xpath("//*[@class='create']/input")); + newNameField.sendKeys("hey"); + newNameField.sendKeys(Keys.ENTER); + + + } + + @Test(enabled = false) + public void login_CorrectCredentialsExplicitWait_LoggedToApp() { + var email = driver.findElement(By.xpath("//*[@type='email']")); + email.sendKeys("testpro.user02@testpro.io"); + + var password = driver.findElement(By.xpath("//*[@type='password']")); + password.sendKeys("te$t$tudent02"); + + var loginButton = driver.findElement(By.xpath("//*[@type='submit']")); + loginButton.click(); + + //explicitWait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@class='home active']"))); + var homeButton = driver.findElement(By.xpath("//*[@class='home active']")); + homeButton.click(); + } + + @Test(enabled = true) + public void login_IncorrectCredentialsFluent_CantLogin() { + var email = driver.findElement(By.xpath("//*[@type='email']")); + email.sendKeys("testpro.user02@testpro.io"); + + var password = driver.findElement(By.xpath("//*[@type='password']")); + password.sendKeys("*************"); + + var loginButton = driver.findElement(By.xpath("//*[@type='submit']")); + loginButton.click(); + + fluentWait.until(x -> x.findElement(By.className("error"))); + List error = driver.findElements(By.xpath("//*[@class='error']")); + + Assert.assertEquals(error.size(), 1, "Element not found"); + Assert.assertTrue(true); + + } +} \ No newline at end of file diff --git a/src/test/java/SimpleTestSelenium.java b/src/test/java/SimpleTestSelenium.java new file mode 100644 index 0000000..10bd831 --- /dev/null +++ b/src/test/java/SimpleTestSelenium.java @@ -0,0 +1,58 @@ +import org.openqa.selenium.By; +import org.openqa.selenium.Keys; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.chrome.ChromeDriver; +import org.testng.Assert; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +public class SimpleTestSelenium { + private WebDriver driver; + + @BeforeMethod + public void startUp() { + System.setProperty("webdriver.chrome.driver", "chromedriver.exe"); + driver = new ChromeDriver(); + driver.get("https://google.com"); + } + + @AfterMethod + public void tearDown() throws InterruptedException { + Thread.sleep(2000); + driver.quit(); + } + + @Test(enabled = true) + public void googleSearch_SearchForSelenium_SearchPageOpened() throws InterruptedException { + WebElement searchField = driver.findElement(By.xpath("//*[@name='q']")); + searchField.sendKeys("selenium"); + searchField.sendKeys(Keys.ENTER); + Thread.sleep(2000); + + WebElement images = driver.findElement(By.xpath("//*[text()='Images']")); + images.click(); + driver.findElement(By.xpath("//div[contains(text(),'Web Scraping Using Selenium - Towards ...')]")).click(); + + Assert.assertEquals(driver.getTitle(), "selenium - Google Search"); + + } + + @Test(enabled = false) + public void googleSearch_SearchForJava_SearchPageOpened() { + WebElement searchField = driver.findElement(By.xpath("//*[@name='q']")); + searchField.sendKeys("Java"); + searchField.sendKeys(Keys.RETURN); + Assert.assertEquals(driver.getTitle(), "Java - Google Search"); + + } + + @Test(enabled = false) + public void udemy_SearchForJava_SearchPageOpened() throws InterruptedException { + Thread.sleep(3000); + WebElement searchField = driver.findElement(By.cssSelector("[data-purpose*='search-box']")); + searchField.sendKeys("Java"); + searchField.sendKeys(Keys.RETURN); + } +} \ No newline at end of file diff --git a/src/test/java/UnitTestExample.java b/src/test/java/UnitTestExample.java new file mode 100644 index 0000000..491871c --- /dev/null +++ b/src/test/java/UnitTestExample.java @@ -0,0 +1,29 @@ +import L10.Person; +import org.testng.Assert; +import org.testng.annotations.Test; + +public class UnitTestExample { + @Test + public void testResultFromPerson(){ + //Arrange + Person person = new Person("Ivan","Krotov"); + + //Act + String res = person.result(2,1,1); + + //Assert + Assert.assertEquals(res,"Ivan4"); + } + + @Test + public void testLastResultMethodFromPersonInLesson10(){ + //Arrange + Person doris = new Person("Doris","Sun"); + + //Act + String res = doris.lastResult(8,"finish"); + + //Assert + Assert.assertEquals(res,"Sun8finish"); + } +} diff --git a/src/test/java/apiTest/PlaylistTestDb.java b/src/test/java/apiTest/PlaylistTestDb.java new file mode 100644 index 0000000..1ba914e --- /dev/null +++ b/src/test/java/apiTest/PlaylistTestDb.java @@ -0,0 +1,70 @@ +package apiTest; + +import com.google.gson.Gson; +import helpers.Data; +import helpers.DbAdapter; +import helpers.TestData; +import helpers.Token; +import io.restassured.http.ContentType; +import io.restassured.path.json.JsonPath; +import io.restassured.response.Response; +import models.CreatePlaylistRequest; +import models.CreatePlaylistResponse; +import models.Playlist; +import org.testng.Assert; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + + +import java.sql.SQLException; + +import static io.restassured.RestAssured.given; + +public class PlaylistTestDb { + private int playlist_id; + private String token; + @BeforeMethod + public void startUp(){ + token = Token.retrieveToken("testpro.user02@testpro.io","te$t$tudent02"); + } + @AfterMethod + public void tearDown(){ + given() + .baseUri("https://koelapp.testpro.io/") + .header("Authorization","Bearer "+token) + .basePath("api/playlist/"+playlist_id) + .when() + .delete(); + } + @Test + public void playlistTestsDb_CreatePlaylist_PlaylistCreated() throws SQLException { + String playlistName = TestData.randomString(); + String[] rules = {}; + var createPlaylist = new CreatePlaylistRequest(playlistName,rules); + var requestBody = new Gson().toJson(createPlaylist); + + Response response = given() + .baseUri("https://koelapp.testpro.io/") + .header("Authorization","Bearer "+token) + .basePath("api/playlist") + .contentType(ContentType.JSON) + .body(requestBody) + .when() + .post() + .then() + .statusCode(200) + .extract() + .response(); + + JsonPath jsonPath = response.jsonPath(); + CreatePlaylistResponse createdPlaylist = jsonPath.getObject("$",CreatePlaylistResponse.class); + playlist_id=createdPlaylist.id; + Assert.assertEquals(createPlaylist.name,createdPlaylist.name); + Assert.assertEquals(createdPlaylist.songs.length,0); + Playlist playlist = DbAdapter.getPlaylistsById(playlist_id); + Assert.assertNotNull(playlist,"Object not found in DB"); + + Assert.assertEquals(playlistName,playlist.name); + } +} diff --git a/src/test/java/apiTest/PlaylistTests.java b/src/test/java/apiTest/PlaylistTests.java new file mode 100644 index 0000000..cb4b126 --- /dev/null +++ b/src/test/java/apiTest/PlaylistTests.java @@ -0,0 +1,99 @@ +package apiTest; + +import com.google.gson.Gson; +import helpers.Data; +import helpers.TestData; +import helpers.Token; +import io.restassured.http.ContentType; +import io.restassured.http.Header; +import io.restassured.http.Headers; +import io.restassured.path.json.JsonPath; +import io.restassured.response.Response; +import models.CreatePlaylistRequest; +import models.CreatePlaylistResponse; +import models.DataResponse; +import models.Playlist; +import org.testng.Assert; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import static io.restassured.RestAssured.*; + +public class PlaylistTests { + private String token; + private int playlist_id; +// @Parameters({"email","password"}) + @BeforeMethod + public void init(){ + token = Token.retrieveToken("testpro.user02@testpro.io","te$t$tudent02"); + } + @AfterMethod + public void tearDown(){ + Response response = given() + .baseUri("https://koelapp.testpro.io/") + .header("Authorization","Bearer "+token) + .basePath("api/playlist/"+playlist_id) + .when() + .delete(); + } + + @Test + public void playlistTests_CreatePlaylist_PlaylistCreated(){ + String playlistName = TestData.randomString(); + String[] rules = {}; + var playlist = new CreatePlaylistRequest(playlistName,rules); + var requestBody = new Gson().toJson(playlist); + + Response response = given() + .baseUri("https://koelapp.testpro.io/") + .header("Authorization","Bearer "+token) + .basePath("api/playlist") + .contentType(ContentType.JSON) + .body(requestBody) + .when() + .post() + .then() + .statusCode(200) + .extract() + .response(); + + JsonPath jsonPath = response.jsonPath(); + CreatePlaylistResponse createdPlaylist = jsonPath.getObject("$",CreatePlaylistResponse.class); + playlist_id=createdPlaylist.id; + Assert.assertEquals(playlist.name,createdPlaylist.name); + Assert.assertEquals(createdPlaylist.songs.length,0); + var data = Data.getData(); + List playlists = new ArrayList(Arrays.asList(data.playlists)); + int count=0; + for(Playlist pl:playlists){ + if(pl.id==createdPlaylist.id){ + count++; + } + } + Assert.assertEquals(count,1); + } + + @Test + public void getAllData_DataReturned(){ + Response response = given() + .baseUri("https://koelapp.testpro.io/") + .header("Authorization","Bearer "+token) + .basePath("api/data") + .when() + .get() + .then() + .statusCode(200) + .extract() + .response(); + + JsonPath jsonPath = response.jsonPath(); + var data = jsonPath.getObject("$", DataResponse.class); + System.out.println(data.playlists.length); + } + +} diff --git a/src/test/java/apiTest/RenamePlaylist.java b/src/test/java/apiTest/RenamePlaylist.java new file mode 100644 index 0000000..cef460c --- /dev/null +++ b/src/test/java/apiTest/RenamePlaylist.java @@ -0,0 +1,74 @@ +package apiTest; + +import com.google.gson.Gson; +import helpers.Data; +import helpers.TestData; +import helpers.Token; +import io.restassured.http.ContentType; +import io.restassured.path.json.JsonPath; +import io.restassured.response.Response; +import models.CreatePlaylistResponse; +import models.Playlist; +import models.RenamePlaylistRequest; +import models.RenamePlaylistResponse; +import org.testng.Assert; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import static io.restassured.RestAssured.given; + +public class RenamePlaylist { + private int id; + private String token; + @BeforeMethod + public void startUp(){ + String name = TestData.randomString(); + var createdPlaylist = Data.createPlaylist(name); + id = createdPlaylist.id; + token = Token.retrieveToken("testpro.user02@testpro.io","te$t$tudent02"); + } + @AfterMethod + public void tearDown(){ + Response response = given() + .baseUri("https://koelapp.testpro.io/") + .header("Authorization","Bearer "+token) + .basePath("api/playlist/"+id) + .when() + .delete(); + } + + @Test + public void renamePlaylist_PlaylistRenamed(){ + String newName = TestData.randomString(); + RenamePlaylistRequest renamePlaylistRequest = new RenamePlaylistRequest(newName); + var requestBody = new Gson().toJson(renamePlaylistRequest); + + Response response = given() + .baseUri("https://koelapp.testpro.io/") + .header("Authorization","Bearer "+token) + .basePath("api/playlist/"+id) + .contentType(ContentType.JSON) + .body(requestBody) + .when() + .put() + .then() + .statusCode(200) + .extract() + .response(); + + JsonPath jsonPath = response.jsonPath(); + var playlist = jsonPath.getObject("$", RenamePlaylistResponse.class); + Assert.assertEquals(playlist.name,newName); + Assert.assertEquals(playlist.id,id); + + var data = Data.getData(); + int count = 0; + for(Playlist pl: data.playlists){ + if(pl.name.equals(newName)){ + count++; + } + } + Assert.assertEquals(count,1); + } +} diff --git a/src/test/java/apiTest/TestDb.java b/src/test/java/apiTest/TestDb.java new file mode 100644 index 0000000..78986a6 --- /dev/null +++ b/src/test/java/apiTest/TestDb.java @@ -0,0 +1,26 @@ +package apiTest; + +import helpers.DbAdapter; +import models.Playlist; +import org.testng.Assert; +import org.testng.annotations.Test; + +import java.sql.SQLException; + +public class TestDb { + @Test + public void getArtists_ListOfArtistReturned() throws SQLException { + DbAdapter.getArtists(); + } + + @Test + public void getPlaylists_ListOfPlaylists_returned() throws SQLException { + DbAdapter.getAllPlaylists(); + } + + @Test + public void getSinglePlaylistById() throws SQLException { + Playlist pl = DbAdapter.getPlaylistsById(19); + Assert.assertEquals(pl.name,"Dima"); + } +} diff --git a/src/test/java/browserFactory/BrowserFactory.java b/src/test/java/browserFactory/BrowserFactory.java new file mode 100644 index 0000000..f0922c2 --- /dev/null +++ b/src/test/java/browserFactory/BrowserFactory.java @@ -0,0 +1,50 @@ +package browserFactory; + +import enums.BrowserType; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.chrome.ChromeDriver; +import org.openqa.selenium.chrome.ChromeOptions; +import org.openqa.selenium.firefox.FirefoxDriver; +import org.openqa.selenium.firefox.FirefoxOptions; +import org.openqa.selenium.opera.OperaDriver; +import org.openqa.selenium.opera.OperaOptions; + +public class BrowserFactory { + public static WebDriver createWebDriver(BrowserType browserType) throws NoSuchMethodException { + switch (browserType){ + case FIREFOX: + return getFirefoxDriver(); + case CHROME: + return getChromeDriver(); + case OPERA: + return getOperaDriver(); + default: throw new NoSuchMethodException("Browser driver not found"); + } + } + + private static WebDriver getOperaDriver() { + OperaOptions options = new OperaOptions(); + options.addArguments("window-size=1400,1000"); +// options.addArguments("--headless"); + System.setProperty("webdriver.opera.driver","operadriver.exe"); + return new OperaDriver(options); + } + + private static WebDriver getChromeDriver() { + ChromeOptions options = new ChromeOptions(); + options.addArguments("window-size=1400,1000"); +// options.addArguments("--headless"); + System.setProperty("webdriver.chrome.driver","chromedriver.exe"); + return new ChromeDriver(options); + + } + + private static WebDriver getFirefoxDriver() { + FirefoxOptions options = new FirefoxOptions(); + options.addArguments("--width=1400"); + options.addArguments("--height=1000"); + options.addArguments("--headless"); + System.setProperty("webdriver.gecko.driver","geckodriver.exe"); + return new FirefoxDriver(options); + } +} diff --git a/src/test/java/enums/BrowserType.java b/src/test/java/enums/BrowserType.java new file mode 100644 index 0000000..e3b6d96 --- /dev/null +++ b/src/test/java/enums/BrowserType.java @@ -0,0 +1,7 @@ +package enums; + +public enum BrowserType { + CHROME, + FIREFOX, + OPERA, +} diff --git a/src/test/java/helpers/Data.java b/src/test/java/helpers/Data.java new file mode 100644 index 0000000..cba1b7d --- /dev/null +++ b/src/test/java/helpers/Data.java @@ -0,0 +1,52 @@ +package helpers; + +import com.google.gson.Gson; +import io.restassured.http.ContentType; +import io.restassured.path.json.JsonPath; +import io.restassured.response.Response; +import models.CreatePlaylistRequest; +import models.CreatePlaylistResponse; +import models.DataResponse; + +import static io.restassured.RestAssured.given; + +public class Data { + public static DataResponse getData(){ + String token = Token.retrieveToken("testpro.user02@testpro.io","te$t$tudent02"); + Response response = given() + .baseUri("https://koelapp.testpro.io/") + .header("Authorization","Bearer "+token) + .basePath("api/data") + .when() + .get() + .then() + .statusCode(200) + .extract() + .response(); + + JsonPath jsonPath = response.jsonPath(); + return jsonPath.getObject("$", DataResponse.class); + } + public static CreatePlaylistResponse createPlaylist(String playlistName){ + String token = Token.retrieveToken("testpro.user02@testpro.io","te$t$tudent02"); + String[] rules = {}; + var playlist = new CreatePlaylistRequest(playlistName,rules); + var requestBody = new Gson().toJson(playlist); + + Response response = given() + .baseUri("https://koelapp.testpro.io/") + .header("Authorization","Bearer "+token) + .basePath("api/playlist") + .contentType(ContentType.JSON) + .body(requestBody) + .when() + .post() + .then() + .statusCode(200) + .extract() + .response(); + + JsonPath jsonPath = response.jsonPath(); + return jsonPath.getObject("$",CreatePlaylistResponse.class); + } +} diff --git a/src/test/java/helpers/DbAdapter.java b/src/test/java/helpers/DbAdapter.java new file mode 100644 index 0000000..48b9c82 --- /dev/null +++ b/src/test/java/helpers/DbAdapter.java @@ -0,0 +1,100 @@ +package helpers; + +import models.Artist; +import models.Playlist; + +import java.sql.*; +import java.util.ArrayList; +import java.util.List; + +public class DbAdapter { + static final String JDBC_DRIVER = "org.mariadb.jdbc.Driver"; + static final String DB_URL = "jdbc:mariadb://koelapp.testpro.io/dbkoel"; + static final String USER = "dbuser02"; + static final String PASS = "pa$$02"; + + static Connection conn = null; + static Statement stmt = null; + + public static List getArtists() throws SQLException { + List artists = new ArrayList(); + try { + Class.forName(JDBC_DRIVER); + conn = DriverManager.getConnection(DB_URL, USER, PASS); + stmt = conn.createStatement(); + + String sqlQuery = "SELECT * FROM artists"; + ResultSet rs = stmt.executeQuery(sqlQuery); + while (rs.next()) { + String name = rs.getString("name"); + int id = rs.getInt("id"); + + Artist artist = new Artist(id,name); + artists.add(artist); + } + } catch (SQLException | ClassNotFoundException err) { + err.printStackTrace(); + } finally { + if (conn != null) { + conn.close(); + } + } + return artists; + } + + public static List getAllPlaylists() throws SQLException { + List playlists = new ArrayList(); + try { + Class.forName(JDBC_DRIVER); + conn = DriverManager.getConnection(DB_URL, USER, PASS); + stmt = conn.createStatement(); + + String sqlQuery = "SELECT * FROM playlists"; + ResultSet rs = stmt.executeQuery(sqlQuery); + while (rs.next()) { + String name = rs.getString("name"); + int id = rs.getInt("id"); + + Playlist playlist = new Playlist(id,name); + playlists.add(playlist); + } + } catch (SQLException | ClassNotFoundException err) { + err.printStackTrace(); + } finally { + if (conn != null) { + conn.close(); + } + } + return playlists; + } + + public static Playlist getPlaylistsById(int id) throws SQLException { + Playlist returnedPlaylist = new Playlist(); + try { + Class.forName(JDBC_DRIVER); + conn = DriverManager.getConnection(DB_URL, USER, PASS); + stmt = conn.createStatement(); + + String sqlQuery = "SELECT id, name FROM playlists WHERE id="+id; + List pls = new ArrayList<>(); + ResultSet rs = stmt.executeQuery(sqlQuery); + while (rs.next()) { + String name = rs.getString("name"); + + Playlist playlist = new Playlist(id,name); + pls.add(playlist); + } + if(pls.size()==0){ + return null; + } + returnedPlaylist = pls.get(0); + } catch (SQLException | ClassNotFoundException err) { + err.printStackTrace(); + } finally { + if (conn != null) { + conn.close(); + } + } + return returnedPlaylist; + } +} diff --git a/src/test/java/helpers/GetScreenshot.java b/src/test/java/helpers/GetScreenshot.java new file mode 100644 index 0000000..af50ba9 --- /dev/null +++ b/src/test/java/helpers/GetScreenshot.java @@ -0,0 +1,21 @@ +package helpers; + +import org.apache.commons.io.FileUtils; +import org.openqa.selenium.OutputType; +import org.openqa.selenium.TakesScreenshot; +import org.openqa.selenium.WebDriver; + +import java.io.File; +import java.io.IOException; + +public class GetScreenshot { + public static void capture(WebDriver driver, String screenshotName){ + try { + TakesScreenshot takesScreenshot = (TakesScreenshot) driver; + File file = takesScreenshot.getScreenshotAs((OutputType.FILE)); + FileUtils.copyFile(file, new File("./screenshots/" + screenshotName +".png")); + } catch (IOException e) { + System.out.println("File IO problem" + e.getMessage()); + } + } +} diff --git a/src/test/java/helpers/TestData.java b/src/test/java/helpers/TestData.java new file mode 100644 index 0000000..63093f2 --- /dev/null +++ b/src/test/java/helpers/TestData.java @@ -0,0 +1,12 @@ +package helpers; + +import org.apache.commons.lang3.RandomStringUtils; + +public class TestData { + public static String randomString(){ + int length = 10; + boolean useLetters = true; + boolean useNumbers = false; + return RandomStringUtils.random(length, useLetters, useNumbers); + } +} diff --git a/src/test/java/helpers/Token.java b/src/test/java/helpers/Token.java new file mode 100644 index 0000000..cbb507e --- /dev/null +++ b/src/test/java/helpers/Token.java @@ -0,0 +1,35 @@ +package helpers; + +import com.google.gson.Gson; +import io.restassured.http.ContentType; +import io.restassured.path.json.JsonPath; +import io.restassured.response.Response; +import models.TokenRequest; +import models.TokenResponse; + +import static io.restassured.RestAssured.given; + +public class Token { + public static String retrieveToken(String login, String pwd){ + String token = ""; + var credentials = new TokenRequest(login,pwd); + var requestBody = new Gson().toJson(credentials); + + Response response = given() + .baseUri("https://koelapp.testpro.io/") + .basePath("api/me") + .contentType(ContentType.JSON) + .body(requestBody) + .when() + .post() + .then() + .statusCode(200) + .extract() + .response(); + + JsonPath jsonPath = response.jsonPath(); + var responseBody = jsonPath.getObject("$", TokenResponse.class); + token = responseBody.token; + return token; + } +} diff --git a/src/test/java/listeners/Listeners.java b/src/test/java/listeners/Listeners.java new file mode 100644 index 0000000..24a56a1 --- /dev/null +++ b/src/test/java/listeners/Listeners.java @@ -0,0 +1,49 @@ +package listeners; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.testng.ITestContext; +import org.testng.ITestListener; +import org.testng.ITestResult; +import tests.HomepageTests; + +public class Listeners implements ITestListener { + private static Logger logger = LogManager.getLogger(HomepageTests.class); + @Override + public void onTestStart(ITestResult iTestResult) { + System.out.println("test started "+iTestResult.getName()); + logger.warn("Test started " + iTestResult.getName()); + + } + + @Override + public void onTestSuccess(ITestResult iTestResult) { + + } + + @Override + public void onTestFailure(ITestResult iTestResult) { + logger.fatal("Test failed " + iTestResult.getName()); + + } + + @Override + public void onTestSkipped(ITestResult iTestResult) { + logger.error("Test skipped "+ iTestResult.getName()); + } + + @Override + public void onTestFailedButWithinSuccessPercentage(ITestResult iTestResult) { + + } + + @Override + public void onStart(ITestContext iTestContext) { + + } + + @Override + public void onFinish(ITestContext iTestContext) { + + } +} diff --git a/src/test/java/listeners/RetryAnalyzer.java b/src/test/java/listeners/RetryAnalyzer.java new file mode 100644 index 0000000..c5122dd --- /dev/null +++ b/src/test/java/listeners/RetryAnalyzer.java @@ -0,0 +1,18 @@ +package listeners; + +import org.testng.IRetryAnalyzer; +import org.testng.ITestResult; + +public class RetryAnalyzer implements IRetryAnalyzer { + private int retryCount = 0; + private static final int maxRetryCount = 2; + + @Override + public boolean retry(ITestResult result) { + if (retryCount < maxRetryCount) { + retryCount++; + return true; + } + return false; + } +} diff --git a/src/test/java/models/Albums.java b/src/test/java/models/Albums.java new file mode 100644 index 0000000..f8c5e7d --- /dev/null +++ b/src/test/java/models/Albums.java @@ -0,0 +1,7 @@ +package models; + +public class Albums { + public int id; + public int artist_id; + public String name; +} diff --git a/src/test/java/models/Artist.java b/src/test/java/models/Artist.java new file mode 100644 index 0000000..0d1435a --- /dev/null +++ b/src/test/java/models/Artist.java @@ -0,0 +1,11 @@ +package models; + +public class Artist { + public int id; + public String name; + + public Artist(int id, String name) { + this.id = id; + this.name = name; + } +} diff --git a/src/test/java/models/CreatePlaylistRequest.java b/src/test/java/models/CreatePlaylistRequest.java new file mode 100644 index 0000000..31ac39d --- /dev/null +++ b/src/test/java/models/CreatePlaylistRequest.java @@ -0,0 +1,11 @@ +package models; + +public class CreatePlaylistRequest { + public String name; + public String[] rules; + + public CreatePlaylistRequest(String name, String[] rules) { + this.name = name; + this.rules = rules; + } +} diff --git a/src/test/java/models/CreatePlaylistResponse.java b/src/test/java/models/CreatePlaylistResponse.java new file mode 100644 index 0000000..13bfd79 --- /dev/null +++ b/src/test/java/models/CreatePlaylistResponse.java @@ -0,0 +1,13 @@ +package models; + +public class CreatePlaylistResponse { + public String name; + public int id; + public String[] songs; + + public CreatePlaylistResponse(String name, int id, String[] songs) { + this.name = name; + this.id = id; + this.songs = songs; + } +} diff --git a/src/test/java/models/CurrentUser.java b/src/test/java/models/CurrentUser.java new file mode 100644 index 0000000..c0c2d6b --- /dev/null +++ b/src/test/java/models/CurrentUser.java @@ -0,0 +1,9 @@ +package models; + +public class CurrentUser { + public int id; + public String name; + public String email; + public boolean is_admin; + public Preferences[] preferences; +} diff --git a/src/test/java/models/DataResponse.java b/src/test/java/models/DataResponse.java new file mode 100644 index 0000000..93c9da7 --- /dev/null +++ b/src/test/java/models/DataResponse.java @@ -0,0 +1,21 @@ +package models; + +public class DataResponse { + public Albums[] albums; + public boolean allowDownload; + public Artist[] artists; + public String cdnUrl; + public CurrentUser currentUser; + public String currentVersion; + public Interaction[] interactions; + public String latestVersion; + public Playlist[] playlists; + public String[] recentlyPlayed; + public Settings[] settings; + public Song[] songs; + public boolean supportsTranscoding; + public boolean useLastfm; + public boolean useYouTube; + public boolean useiTunes; + public User[] users; +} diff --git a/src/test/java/models/Interaction.java b/src/test/java/models/Interaction.java new file mode 100644 index 0000000..1d81c36 --- /dev/null +++ b/src/test/java/models/Interaction.java @@ -0,0 +1,7 @@ +package models; + +public class Interaction { + public String song_id; + public boolean liked; + public int play_count; +} diff --git a/src/test/java/models/Playlist.java b/src/test/java/models/Playlist.java new file mode 100644 index 0000000..8cd8428 --- /dev/null +++ b/src/test/java/models/Playlist.java @@ -0,0 +1,17 @@ +package models; + +public class Playlist { + public int id; + public String name; + public String[] rules; + public boolean is_smart; + + public Playlist(int id, String name) { + this.id = id; + this.name = name; + } + + public Playlist() { + + } +} diff --git a/src/test/java/models/Preferences.java b/src/test/java/models/Preferences.java new file mode 100644 index 0000000..c6fd35a --- /dev/null +++ b/src/test/java/models/Preferences.java @@ -0,0 +1,5 @@ +package models; + +public class Preferences { + public String lastfm_session_key; +} diff --git a/src/test/java/models/RenamePlaylistRequest.java b/src/test/java/models/RenamePlaylistRequest.java new file mode 100644 index 0000000..1d85203 --- /dev/null +++ b/src/test/java/models/RenamePlaylistRequest.java @@ -0,0 +1,9 @@ +package models; + +public class RenamePlaylistRequest { + public String name; + + public RenamePlaylistRequest(String name) { + this.name = name; + } +} diff --git a/src/test/java/models/RenamePlaylistResponse.java b/src/test/java/models/RenamePlaylistResponse.java new file mode 100644 index 0000000..2deccb5 --- /dev/null +++ b/src/test/java/models/RenamePlaylistResponse.java @@ -0,0 +1,6 @@ +package models; + +public class RenamePlaylistResponse { + public int id; + public String name; +} diff --git a/src/test/java/models/Settings.java b/src/test/java/models/Settings.java new file mode 100644 index 0000000..8463c32 --- /dev/null +++ b/src/test/java/models/Settings.java @@ -0,0 +1,5 @@ +package models; + +public class Settings { + public String media_path; +} diff --git a/src/test/java/models/Song.java b/src/test/java/models/Song.java new file mode 100644 index 0000000..662dd4e --- /dev/null +++ b/src/test/java/models/Song.java @@ -0,0 +1,12 @@ +package models; + +public class Song { + public String id; + public int album_id; + public int artist_id; + public String title; + public String created_at; + public int disc; + public int track; + public double length; +} diff --git a/src/test/java/models/TokenRequest.java b/src/test/java/models/TokenRequest.java new file mode 100644 index 0000000..98b4446 --- /dev/null +++ b/src/test/java/models/TokenRequest.java @@ -0,0 +1,11 @@ +package models; + +public class TokenRequest { + public String email; + public String password; + + public TokenRequest(String email, String password) { + this.email = email; + this.password = password; + } +} diff --git a/src/test/java/models/TokenResponse.java b/src/test/java/models/TokenResponse.java new file mode 100644 index 0000000..e0b3edd --- /dev/null +++ b/src/test/java/models/TokenResponse.java @@ -0,0 +1,5 @@ +package models; + +public class TokenResponse { + public String token; +} diff --git a/src/test/java/models/User.java b/src/test/java/models/User.java new file mode 100644 index 0000000..bbfe9a4 --- /dev/null +++ b/src/test/java/models/User.java @@ -0,0 +1,8 @@ +package models; + +public class User { + public int id; + public String name; + public String email; + public boolean is_admin; +} diff --git a/src/test/java/pageObjects/BasePage.java b/src/test/java/pageObjects/BasePage.java new file mode 100644 index 0000000..778bef4 --- /dev/null +++ b/src/test/java/pageObjects/BasePage.java @@ -0,0 +1,28 @@ +package pageObjects; + +import org.openqa.selenium.ElementClickInterceptedException; +import org.openqa.selenium.NoSuchElementException; +import org.openqa.selenium.StaleElementReferenceException; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.support.ui.FluentWait; +import org.openqa.selenium.support.ui.WebDriverWait; + +import java.time.Duration; + +public class BasePage { + protected WebDriver driver; + protected FluentWait fluentWait; + protected final String url = "https://koelapp.testpro.io/"; + protected WebDriverWait explicitWait; + + public BasePage(WebDriver driver) { + this.driver = driver; + explicitWait = new WebDriverWait(driver, 10); + this.fluentWait = new FluentWait(this.driver) + .withTimeout(Duration.ofSeconds(10)) + .pollingEvery(Duration.ofMillis(100)) + .ignoring(ElementClickInterceptedException.class) + .ignoring(StaleElementReferenceException.class) + .ignoring(NoSuchElementException.class); + } +} diff --git a/src/test/java/pageObjects/HomePage.java b/src/test/java/pageObjects/HomePage.java new file mode 100644 index 0000000..721f8fb --- /dev/null +++ b/src/test/java/pageObjects/HomePage.java @@ -0,0 +1,60 @@ +package pageObjects; + +import org.openqa.selenium.*; +import org.openqa.selenium.interactions.Actions; +import org.openqa.selenium.support.ui.ExpectedConditions; + +public class HomePage extends BasePage{ + public HomePage(WebDriver driver) { + super(driver); + } + public boolean isHomepage(){ + try{ + fluentWait.until(x->x.findElement(By.xpath(HomePageSelectors.homeButtonXpath))); + } catch (TimeoutException err) { + return false; + } + return true; + } + public WebElement getPlusButton(){ + explicitWait.until(ExpectedConditions.elementToBeClickable(By.cssSelector(HomePageSelectors.plusButtonCssSelector))); + return driver.findElement(By.cssSelector(HomePageSelectors.plusButtonCssSelector)); + } + private WebElement getNewPlaylistNameField(){ + return driver.findElement(By.xpath(HomePageSelectors.newPlaylistFieldXpath)); + } + private String getPlaylistXpath(String name){ + return "//a[text()='"+name+"']"; + } + public String createNewPlaylist(String name) { + getPlusButton().click(); + getNewPlaylistNameField().sendKeys(name); + getNewPlaylistNameField().sendKeys(Keys.ENTER); + String str = driver.getCurrentUrl(); + return str.split("/")[5]; + } + public boolean isPlaylistCreated(String name){ + var list = driver.findElements(By.xpath(getPlaylistXpath(name))); + return list.size()>0; + } + + public void leftHandScrollDown(String name) { + JavascriptExecutor js = (JavascriptExecutor) driver; + WebElement playlist = driver.findElement(By.xpath(getPlaylistXpath(name))); + js.executeScript("arguments[0].scrollIntoView();", playlist); + +// Actions actions = new Actions(driver); +// actions.moveToElement(playlist); +// actions.perform(); + } + + public void renamePlayList(String oldName, String newName) { + WebElement playlist = driver.findElement(By.xpath(getPlaylistXpath(oldName))); + Actions actions = new Actions(driver); + actions.doubleClick(playlist).perform(); + WebElement textField = driver.findElement(By.xpath("//*[@class='playlist playlist editing']/input")); + textField.sendKeys(Keys.CONTROL + "a"); + textField.sendKeys(newName); + textField.sendKeys(Keys.ENTER); + } +} diff --git a/src/test/java/pageObjects/HomePageSelectors.java b/src/test/java/pageObjects/HomePageSelectors.java new file mode 100644 index 0000000..aeb8949 --- /dev/null +++ b/src/test/java/pageObjects/HomePageSelectors.java @@ -0,0 +1,7 @@ +package pageObjects; + +public class HomePageSelectors { + public static final String homeButtonXpath = "//*[@class='home active']"; + public static final String plusButtonCssSelector = ".fa.fa-plus-circle"; + public static final String newPlaylistFieldXpath = "//*[@class='create']/*"; +} diff --git a/src/test/java/pageObjects/LoginPage.java b/src/test/java/pageObjects/LoginPage.java new file mode 100644 index 0000000..1634d85 --- /dev/null +++ b/src/test/java/pageObjects/LoginPage.java @@ -0,0 +1,47 @@ +package pageObjects; + +import org.openqa.selenium.*; + + +public class LoginPage extends BasePage{ + private final String emailXpath = "//*[@type='email']"; + private final String passwordXpath = "//*[@type='password']"; + private final String loginButtonXpath = "//*[@type='submit']"; + private final String errorXpath = "//*[@class='error']"; + + public LoginPage(WebDriver driver) { + super(driver); + } + + public void openPage(){ + driver.get(url); + } + + private WebElement getEmailField(){ + return driver.findElement(By.xpath(emailXpath)); + } + + private WebElement getPasswordField(){ + return driver.findElement(By.xpath(passwordXpath)); + } + + private WebElement getLoginButton(){ + return driver.findElement(By.xpath(loginButtonXpath)); + } + + public HomePage login(String email, String password){ + getEmailField().sendKeys(email); + getPasswordField().sendKeys(password); + getLoginButton().click(); + return new HomePage(driver); + } + + public boolean isError() { + try{ + fluentWait.until(x->x.findElement(By.xpath(errorXpath))); + } catch (TimeoutException err) { + return false; + } + return true; + } +} diff --git a/src/test/java/tests/BaseTest.java b/src/test/java/tests/BaseTest.java new file mode 100644 index 0000000..84e7fcd --- /dev/null +++ b/src/test/java/tests/BaseTest.java @@ -0,0 +1,36 @@ +package tests; + +import browserFactory.BrowserFactory; +import enums.BrowserType; +import helpers.GetScreenshot; +import org.openqa.selenium.WebDriver; +import org.testng.ITestResult; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Parameters; + +public class BaseTest { + protected WebDriver driver; + @Parameters({"browser"}) + @BeforeMethod + public void startUp(String browserName) throws NoSuchMethodException { + BrowserType browser; + switch (browserName){ + case "CHROME": browser=BrowserType.CHROME; + break; + case "FIREFOX": browser = BrowserType.FIREFOX; + break; + default: throw new NoSuchMethodException("Browser not defined"); + } + + driver = BrowserFactory.createWebDriver(browser); + } + + @AfterMethod + public void tearDown(ITestResult iTestResult){ + if(iTestResult.getStatus() == ITestResult.FAILURE) { + GetScreenshot.capture(driver, iTestResult.getName()); + } + driver.quit(); + } +} diff --git a/src/test/java/tests/HomepageTests.java b/src/test/java/tests/HomepageTests.java new file mode 100644 index 0000000..f113be6 --- /dev/null +++ b/src/test/java/tests/HomepageTests.java @@ -0,0 +1,62 @@ +package tests; + +import io.restassured.http.Header; +import io.restassured.response.Response; +import listeners.RetryAnalyzer; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.testng.Assert; +import org.testng.ITestResult; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.Parameters; +import org.testng.annotations.Test; +import pageObjects.HomePage; +import pageObjects.LoginPage; + +import static io.restassured.RestAssured.given; + +public class HomepageTests extends BaseTest{ + private String id; + private static Logger logger = LogManager.getLogger(HomepageTests.class); + @AfterMethod + public void tearDown(){ + Header header = new Header("Authorization","Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjMwMCwiaXNzIjoiaHR0cHM6Ly9rb2VsYXBwLnRlc3Rwcm8uaW8vYXBpL21lIiwiaWF0IjoxNTg5ODU0MDM5LCJleHAiOjE1OTA0NTg4MzksIm5iZiI6MTU4OTg1NDAzOSwianRpIjoiMFFhWEVNYXVEanBjRVNJdSJ9.bZpEG2hGAYhFEpO3sYCa08xl7SQU_Kk7FYQYRXImGOg"); + Response response = + given() + .baseUri("https://koelapp.testpro.io/") + .header(header) + .when() + .delete("api/playlist/"+id) + .then() + .statusCode(200) + .extract() + .response(); + } + @Parameters({"email","password","playlist"}) + @Test(retryAnalyzer = RetryAnalyzer.class) + public void loginTest_createNewPlaylist_newPlaylistCreated(String login, String pwd, String playlist) { + logger.info("test started"); + LoginPage loginPage = new LoginPage(driver); + logger.info("login page created"); + loginPage.openPage(); + logger.info("login page opened"); + HomePage homePage = loginPage.login(login,pwd); + logger.info("logged to app"); + id = homePage.createNewPlaylist(playlist); + logger.info("playlist created"); + + Assert.assertTrue(homePage.isPlaylistCreated(playlist)); + } + @Parameters({"email","password","playlist", "new-playlist"}) + @Test + public void scrollDown(String login, String pwd, String playlist, String newPlaylist){ + LoginPage loginPage = new LoginPage(driver); + loginPage.openPage(); + HomePage homePage = loginPage.login(login,pwd); + homePage.createNewPlaylist(playlist); + homePage.leftHandScrollDown(playlist); + homePage.renamePlayList(playlist,newPlaylist); + Assert.assertTrue(homePage.isPlaylistCreated(newPlaylist)); + + } +} diff --git a/src/test/java/tests/HomepageTests_new.java b/src/test/java/tests/HomepageTests_new.java new file mode 100644 index 0000000..998a796 --- /dev/null +++ b/src/test/java/tests/HomepageTests_new.java @@ -0,0 +1,28 @@ +package tests; + +import org.testng.Assert; +import org.testng.annotations.Test; +import pageObjects.HomePage; +import pageObjects.LoginPage; + +public class HomepageTests_new extends BaseTest{ + @Test + public void new_loginTest_createNewPlaylist_newPlaylistCreated() { + LoginPage loginPage = new LoginPage(driver); + loginPage.openPage(); + HomePage homePage = loginPage.login("testpro.user02@testpro.io","te$t$tudent02"); + homePage.createNewPlaylist("HeyYoPlaylist"); + Assert.assertTrue(homePage.isPlaylistCreated("HeyYoPlaylist")); + } + @Test + public void new_scrollDown(){ + LoginPage loginPage = new LoginPage(driver); + loginPage.openPage(); + HomePage homePage = loginPage.login("testpro.user02@testpro.io","te$t$tudent02"); + homePage.createNewPlaylist("zzHeyYoPlaylist"); + homePage.leftHandScrollDown("zzHeyYoPlaylist"); + homePage.renamePlayList("zzHeyYoPlaylist","newName"); + Assert.assertTrue(homePage.isPlaylistCreated("newName")); + + } +} diff --git a/src/test/java/tests/LoginTests.java b/src/test/java/tests/LoginTests.java new file mode 100644 index 0000000..95fe41c --- /dev/null +++ b/src/test/java/tests/LoginTests.java @@ -0,0 +1,63 @@ +package tests; + +import listeners.RetryAnalyzer; +import org.testng.Assert; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Parameters; +import org.testng.annotations.Test; +import pageObjects.HomePage; +import pageObjects.LoginPage; + + +public class LoginTests extends BaseTest{ + + @Parameters({"email","password"}) + @Test + public void loginTest_correctCredentials_loggedToApp(String login, String pwd){ + LoginPage loginPage = new LoginPage(driver); + loginPage.openPage(); + HomePage homePage = loginPage.login(login,pwd); + Assert.assertTrue(homePage.isHomepage()); + } + @Parameters({"email","wrong-password"}) + @Test(retryAnalyzer = RetryAnalyzer.class) + public void loginTest_incorrectCredentials_notLoggedToApp(String login, String pwd){ + LoginPage loginPage = new LoginPage(driver); + loginPage.openPage(); + loginPage.login(login,pwd); + Assert.assertTrue(loginPage.isError()); + } + @Test (retryAnalyzer = RetryAnalyzer.class, enabled = false) + public void test_Fails(){ + Assert.assertTrue(false); + } + @DataProvider(name = "Summing") + public Object[][] createData1() { + return new Object[][] { + { 3, 3, 6 }, + { 2,8,10}, + {10,12,22}, + {58,3,61}, + {5,6,10}, + {-10,-15,-25} + }; + } + @Test(dataProvider = "Summing") + public void test_Sum(int a, int b, int c){ + int xx = a + b; + Assert.assertEquals(xx,c); + } + @DataProvider(name = "StringSumming") + public Object[][] createData2() { + return new Object[][] { + {"ST","ing","STing"}, + {"5","6","11"}, + {"55","6","556"} + }; + } + @Test(dataProvider = "StringSumming") + public void test_StringSum(String a, String b, String c){ + String xx = a + b; + Assert.assertEquals(xx,c); + } +} diff --git a/src/test/java/tests/LoginTests_new.java b/src/test/java/tests/LoginTests_new.java new file mode 100644 index 0000000..594c3cb --- /dev/null +++ b/src/test/java/tests/LoginTests_new.java @@ -0,0 +1,27 @@ +package tests; + +import org.testng.Assert; +import org.testng.annotations.Test; +import pageObjects.HomePage; +import pageObjects.LoginPage; + + +public class LoginTests_new extends BaseTest{ + + @Test + public void new_loginTest_correctCredentials_loggedToApp(){ + LoginPage loginPage = new LoginPage(driver); + loginPage.openPage(); + HomePage homePage = loginPage.login("testpro.user02@testpro.io","te$t$tudent02"); + Assert.assertTrue(homePage.isHomepage()); + } + @Test + public void new_loginTest_incorrectCredentials_notLoggedToApp(){ + LoginPage loginPage = new LoginPage(driver); + loginPage.openPage(); + loginPage.login("testpro.user02@testpro.io","********"); + Assert.assertTrue(loginPage.isError()); + } + + +} diff --git a/src/test/java/tests/PetstoreApiTests.java b/src/test/java/tests/PetstoreApiTests.java new file mode 100644 index 0000000..03c1ff0 --- /dev/null +++ b/src/test/java/tests/PetstoreApiTests.java @@ -0,0 +1,25 @@ +package tests; + +import io.restassured.response.Response; +import org.testng.annotations.Test; +import static io.restassured.RestAssured.*; + +public class PetstoreApiTests { + @Test + public void getPetById(){ + Response response = + given() + .baseUri("https://petstore.swagger.io/") + .when() + .get("v2/pet/111") + + .then() + .statusCode(200) + .extract() + .response(); +// Response response = get("https://petstore.swagger.io/v2/pet/111") +// .thenReturn(); + var jsonPath = response.jsonPath(); + System.out.println(jsonPath.prettify()); + } +} diff --git a/src/test/resources/log4j2.xml b/src/test/resources/log4j2.xml new file mode 100644 index 0000000..3c7c329 --- /dev/null +++ b/src/test/resources/log4j2.xml @@ -0,0 +1,18 @@ + + + + + + %d %p %c{1.} [%t] %m%n + + + + + + + + + + + + \ No newline at end of file diff --git a/testngChrome.xml b/testngChrome.xml new file mode 100644 index 0000000..b0ffd44 --- /dev/null +++ b/testngChrome.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/testngFirefox.xml b/testngFirefox.xml new file mode 100644 index 0000000..41a6703 --- /dev/null +++ b/testngFirefox.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file