Changed all the scenarios with JUnit and did some tweaks on the code so that all tests are independent

This commit is contained in:
Marko 2024-05-16 18:58:38 +02:00
parent c8386f6311
commit 8e27420b0a
9 changed files with 86 additions and 153 deletions

View file

@ -146,14 +146,6 @@
<version>4.20.0</version> <version>4.20.0</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.9.0</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.uncommons/reportng --> <!-- https://mvnrepository.com/artifact/org.uncommons/reportng -->
<dependency> <dependency>
<groupId>org.uncommons</groupId> <groupId>org.uncommons</groupId>

View file

@ -1,5 +1,7 @@
package selenium; package selenium;
import org.junit.After;
import org.junit.Before;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;
@ -9,9 +11,6 @@ import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.edge.EdgeOptions; import org.openqa.selenium.edge.EdgeOptions;
import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions; import org.openqa.selenium.firefox.FirefoxOptions;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import java.io.FileReader; import java.io.FileReader;
import java.io.IOException; import java.io.IOException;
@ -37,7 +36,7 @@ public class TestBase {
public static FileReader frInput; public static FileReader frInput;
@BeforeMethod @Before
public void setUp() throws IOException { public void setUp() throws IOException {
String userDirectory = System.getProperty("user.dir"); String userDirectory = System.getProperty("user.dir");
String basePath = "\\src\\test\\java\\selenium\\config\\"; String basePath = "\\src\\test\\java\\selenium\\config\\";
@ -86,12 +85,11 @@ public class TestBase {
WebElement welcomePhoto = driver.findElement(By.className(locators.getProperty("welcomePhoto"))); WebElement welcomePhoto = driver.findElement(By.className(locators.getProperty("welcomePhoto")));
String ActualWelcomePhotoSrc = welcomePhoto.getAttribute("src"); String ActualWelcomePhotoSrc = welcomePhoto.getAttribute("src");
String expectedWelcomePhoto = tap.getProperty("welcomePhoto"); String expectedWelcomePhoto = tap.getProperty("welcomePhoto");
Assert.assertEquals(ActualWelcomePhotoSrc, expectedWelcomePhoto); org.junit.Assert.assertEquals(ActualWelcomePhotoSrc, expectedWelcomePhoto);
} }
@AfterMethod @After
public void tearDown() { public void tearDown() {
driver.quit(); driver.quit();
} }
} }

View file

@ -10,9 +10,10 @@ import java.time.Duration;
import java.util.List; import java.util.List;
import java.util.Properties; import java.util.Properties;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.openqa.selenium.support.ui.ExpectedConditions.visibilityOf; import static org.openqa.selenium.support.ui.ExpectedConditions.visibilityOf;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
public class ListOwnersPage extends TestBase { public class ListOwnersPage extends TestBase {
@ -35,15 +36,15 @@ public class ListOwnersPage extends TestBase {
assertTrue(tableElement.isDisplayed(), "Table is displayed"); assertTrue(tableElement.isDisplayed(), "Table is displayed");
assertEquals(rows.size(), 6, "Expected 6 rows in the table"); assertEquals(rows.size(), 6, "Expected 6 rows in the table");
String owner1 = tap.getProperty("Owner1"); String owner1 = driver.findElement(By.xpath("(//tr)[2]")).getText();
String owner2 = tap.getProperty("Owner2"); String owner2 = driver.findElement(By.xpath("(//tr)[3]")).getText();
assertEquals(rows.get(1).getText(), owner1, "Incorrect data in row 1"); assertEquals(rows.get(1).getText(), owner1, "Incorrect data in row 1");
assertEquals(rows.get(2).getText(), owner2, "Incorrect data in row 2"); assertEquals(rows.get(2).getText(), owner2, "Incorrect data in row 2");
} }
public void clickOnNameFromTable() { public void clickOnNameFromTable(int row) {
WebElement firstRow = rows.get(1); WebElement firstRow = rows.get(row);
List<WebElement> name = firstRow.findElements(By.tagName("td")); List<WebElement> name = firstRow.findElements(By.tagName("td"));
WebElement firstName = name.get(0); WebElement firstName = name.get(0);
String firstNameText = firstName.getText(); String firstNameText = firstName.getText();

View file

@ -1,26 +1,22 @@
package selenium.scenarios; package selenium.scenarios;
import jdk.jfr.Description; import org.junit.Before;
import org.jetbrains.annotations.NotNull; import org.junit.Test;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import selenium.TestBase; import selenium.TestBase;
import selenium.pages.AddOwnerPage; import selenium.pages.AddOwnerPage;
import selenium.pages.FindOwnersPage; import selenium.pages.FindOwnersPage;
import selenium.pages.ListOwnersPage; import selenium.pages.ListOwnersPage;
import selenium.pages.OwnerPage; import selenium.pages.OwnerPage;
import static org.testng.AssertJUnit.*; import static org.junit.Assert.*;
public class TS02AddOwnerTest extends TestBase { public class AddOwnerTest extends TestBase {
private AddOwnerPage addOwnerPage; private AddOwnerPage addOwnerPage;
private OwnerPage ownerPage; private OwnerPage ownerPage;
private FindOwnersPage findOwnersPage; private FindOwnersPage findOwnersPage;
@BeforeMethod @Before
public void setObjects() { public void setObjects() {
addOwnerPage = new AddOwnerPage(driver, locators); addOwnerPage = new AddOwnerPage(driver, locators);
ownerPage = new OwnerPage(driver, locators); ownerPage = new OwnerPage(driver, locators);
@ -32,8 +28,8 @@ public class TS02AddOwnerTest extends TestBase {
findOwnersPage.clickOnAddOwnerButton(); findOwnersPage.clickOnAddOwnerButton();
} }
public void addOrEditAnOwner(@NotNull String action, String firstName, String lastName, String address, String city, public void addOrEditAnOwner(String action, String firstName, String lastName, String address, String city,
String telephone) { String telephone) {
String firstNameText = input.getProperty(firstName); String firstNameText = input.getProperty(firstName);
String lastNameText = input.getProperty(lastName); String lastNameText = input.getProperty(lastName);
String addressText = input.getProperty(address); String addressText = input.getProperty(address);
@ -43,14 +39,12 @@ public class TS02AddOwnerTest extends TestBase {
addOwnerPage.setTextInFields(firstNameText, lastNameText, addressText, cityText, telephoneText); addOwnerPage.setTextInFields(firstNameText, lastNameText, addressText, cityText, telephoneText);
if (action.equalsIgnoreCase("add")) { if (action.equalsIgnoreCase("add")) {
addOwnerPage.clickingOnAddOwnerButton(); addOwnerPage.clickingOnAddOwnerButton();
} } else if (action.equalsIgnoreCase("update")) {
else if (action.equalsIgnoreCase("update")) {
addOwnerPage.clickOnUpdateOwnerButton(); addOwnerPage.clickOnUpdateOwnerButton();
} }
} }
@Test @Test
@Description("Validate successfully adding an owner")
public void testAddingAnOwner() { public void testAddingAnOwner() {
navigateToAddOwner(); navigateToAddOwner();
addOrEditAnOwner("add", "firstName", "lastName", "address", "city", "telephone"); addOrEditAnOwner("add", "firstName", "lastName", "address", "city", "telephone");
@ -59,8 +53,7 @@ public class TS02AddOwnerTest extends TestBase {
assertTrue(ownerPage.isLastNameDisplayed(input.getProperty("lastName"))); assertTrue(ownerPage.isLastNameDisplayed(input.getProperty("lastName")));
} }
@Test(priority = 1) @Test
@Description("Validate adding an owner without filling any of the fields")
public void testEmptyFields() { public void testEmptyFields() {
navigateToAddOwner(); navigateToAddOwner();
addOwnerPage.clickingOnAddOwnerButton(); addOwnerPage.clickingOnAddOwnerButton();
@ -69,9 +62,8 @@ public class TS02AddOwnerTest extends TestBase {
assertTrue(addOwnerPage.isErrorMessageDisplayedForEmptyFields(expectedErrorMessage)); assertTrue(addOwnerPage.isErrorMessageDisplayedForEmptyFields(expectedErrorMessage));
} }
// User is still created - REPORT DEFECT!!! // User is still created after putting numbers in the name fields - REPORT DEFECT!!!
@Test(priority = 2) @Test
@Description("Validate if an owner is added after putting numbers in the name fields")
public void testNumbersInNameFields() { public void testNumbersInNameFields() {
navigateToAddOwner(); navigateToAddOwner();
@ -81,8 +73,7 @@ public class TS02AddOwnerTest extends TestBase {
} }
// You can add the same owner twice - REPORT DEFECT!!! // You can add the same owner twice - REPORT DEFECT!!!
@Test(priority = 3) @Test
@Description("Validate if you can add the same owner twice")
public void testCreateSameOwnerTwice() { public void testCreateSameOwnerTwice() {
navigateToAddOwner(); navigateToAddOwner();
@ -93,8 +84,7 @@ public class TS02AddOwnerTest extends TestBase {
assertFalse("Message should not be visible", ownerPage.isSuccessMessageDisplayed()); assertFalse("Message should not be visible", ownerPage.isSuccessMessageDisplayed());
} }
@Test(priority = 4) @Test
@Description("Validate if an owner is added after putting text in the 'Telephone' field")
public void testTextInTelephoneField() { public void testTextInTelephoneField() {
navigateToAddOwner(); navigateToAddOwner();
@ -102,37 +92,35 @@ public class TS02AddOwnerTest extends TestBase {
String expectedErrorMessage = tap.getProperty("errorMessageTelephoneField"); String expectedErrorMessage = tap.getProperty("errorMessageTelephoneField");
assertTrue("Error message should be displayed for invalid telephone number", assertTrue("Error message should be displayed for invalid telephone number",
addOwnerPage.isErrorMessageDisplayedForTextInTelephoneField(expectedErrorMessage)); addOwnerPage.isErrorMessageDisplayedForTextInTelephoneField(expectedErrorMessage));
} }
@Test(priority = 5) @Test
@Description("Validate updating an owner")
public void testUpdateOwner() { public void testUpdateOwner() {
findOwnersPage.navigateToFindOwnersPage(); findOwnersPage.navigateToFindOwnersPage();
findOwnersPage.clickOnFindOwnerButton(); findOwnersPage.clickOnFindOwnerButton();
ListOwnersPage listOwnersPage = new ListOwnersPage(driver, locators); ListOwnersPage listOwnersPage = new ListOwnersPage(driver, locators);
listOwnersPage.clickOnNameFromTable(); listOwnersPage.clickOnNameFromTable(2);
ownerPage.clickOnEditOwnerButton(); ownerPage.clickOnEditOwnerButton();
addOwnerPage.clearFields(); addOwnerPage.clearFields();
addOrEditAnOwner("update", "updateFirstName", "updateLastName", "updateAddress", "updateCity", addOrEditAnOwner("update", "updateFirstName", "updateLastName", "updateAddress", "updateCity",
"updateTelephone"); "updateTelephone");
assertTrue(ownerPage.isUpdateMessageDisplayed()); assertTrue(ownerPage.isUpdateMessageDisplayed());
assertTrue(ownerPage.isLastNameDisplayed(input.getProperty("updateLastName"))); assertTrue(ownerPage.isLastNameDisplayed(input.getProperty("updateLastName")));
} }
// User can still be updated - REPORT DEFECT!!! // User can still be updated - REPORT DEFECT!!!
@Test(priority = 6) @Test
@Description("Validate updating an owner with the details of an already existing owner") public void testUpdateOwnerWithSameDetailsFromOtherOwner() {
public void testUpdateOwnerWithExistingDetails() {
findOwnersPage.navigateToFindOwnersPage(); findOwnersPage.navigateToFindOwnersPage();
findOwnersPage.clickOnFindOwnerButton(); findOwnersPage.clickOnFindOwnerButton();
ListOwnersPage listOwnersPage = new ListOwnersPage(driver, locators); ListOwnersPage listOwnersPage = new ListOwnersPage(driver, locators);
listOwnersPage.clickOnNameFromTable(); listOwnersPage.clickOnNameFromTable(3);
ownerPage.clickOnEditOwnerButton(); ownerPage.clickOnEditOwnerButton();
addOwnerPage.clearFields(); addOwnerPage.clearFields();
@ -142,8 +130,7 @@ public class TS02AddOwnerTest extends TestBase {
assertFalse("Error message is not displayed", ownerPage.isUpdateMessageDisplayed()); assertFalse("Error message is not displayed", ownerPage.isUpdateMessageDisplayed());
} }
@Test(priority = 7) @Test
@Description("Validate if a newly added owner can be updated")
public void testUpdateNewlyAddedOwner() { public void testUpdateNewlyAddedOwner() {
navigateToAddOwner(); navigateToAddOwner();
addOrEditAnOwner("add", "firstName3", "lastName3", "address3", "city3", "telephone3"); addOrEditAnOwner("add", "firstName3", "lastName3", "address3", "city3", "telephone3");
@ -152,10 +139,9 @@ public class TS02AddOwnerTest extends TestBase {
addOwnerPage.clearFields(); addOwnerPage.clearFields();
addOrEditAnOwner("update", "updateFirstName2", "updateLastName2", "updateAddress2", "updateCity2", addOrEditAnOwner("update", "updateFirstName2", "updateLastName2", "updateAddress2", "updateCity2",
"updateTelephone2"); "updateTelephone2");
assertTrue(ownerPage.isUpdateMessageDisplayed()); assertTrue(ownerPage.isUpdateMessageDisplayed());
assertTrue(ownerPage.isLastNameDisplayed(input.getProperty("updateLastName2"))); assertTrue(ownerPage.isLastNameDisplayed(input.getProperty("updateLastName2")));
} }
} }

View file

@ -1,25 +1,20 @@
package selenium.scenarios; package selenium.scenarios;
import jdk.jfr.Description; import org.junit.Before;
import org.jetbrains.annotations.NotNull; import org.junit.Test;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import selenium.TestBase; import selenium.TestBase;
import selenium.pages.*; import selenium.pages.*;
import static org.testng.AssertJUnit.*; import static org.junit.Assert.*;
public class TS03AddPetTest extends TestBase { public class AddPetTest extends TestBase {
private AddOwnerPage addOwnerPage; private AddOwnerPage addOwnerPage;
private OwnerPage ownerPage; private OwnerPage ownerPage;
private FindOwnersPage findOwnersPage; private FindOwnersPage findOwnersPage;
private AddPetPage addPetPage; private AddPetPage addPetPage;
@BeforeMethod @Before
public void setObjects() { public void setObjects() {
addOwnerPage = new AddOwnerPage(driver, locators); addOwnerPage = new AddOwnerPage(driver, locators);
ownerPage = new OwnerPage(driver, locators); ownerPage = new OwnerPage(driver, locators);
@ -27,7 +22,7 @@ public class TS03AddPetTest extends TestBase {
addPetPage = new AddPetPage(driver, locators); addPetPage = new AddPetPage(driver, locators);
} }
public void addOrEditPet(@NotNull String action, String petName, String birthDate, String petType) { public void addOrEditPet(String action, String petName, String birthDate, String petType) {
String petNameText = input.getProperty(petName); String petNameText = input.getProperty(petName);
String petBirthDateText = input.getProperty(birthDate); String petBirthDateText = input.getProperty(birthDate);
String petTypeOption = input.getProperty(petType); String petTypeOption = input.getProperty(petType);
@ -35,23 +30,21 @@ public class TS03AddPetTest extends TestBase {
addPetPage.fillTheFields(petNameText, petBirthDateText, petTypeOption); addPetPage.fillTheFields(petNameText, petBirthDateText, petTypeOption);
if (action.equalsIgnoreCase("add")) { if (action.equalsIgnoreCase("add")) {
addPetPage.clickOnAddPetButton(); addPetPage.clickOnAddPetButton();
} } else if (action.equalsIgnoreCase("update")) {
else if (action.equalsIgnoreCase("update")) {
addPetPage.clickOnUpdatePetButton(); addPetPage.clickOnUpdatePetButton();
} }
} }
public void navigateToAddPetForExistingOwner() { public void navigateToAddPetForExistingOwner(int row) {
findOwnersPage.navigateToFindOwnersPage(); findOwnersPage.navigateToFindOwnersPage();
findOwnersPage.clickOnFindOwnerButton(); findOwnersPage.clickOnFindOwnerButton();
ListOwnersPage listOwnersPage = new ListOwnersPage(driver, locators); ListOwnersPage listOwnersPage = new ListOwnersPage(driver, locators);
listOwnersPage.clickOnNameFromTable(); listOwnersPage.clickOnNameFromTable(row);
ownerPage.clickOnAddNewPetButton(); ownerPage.clickOnAddNewPetButton();
} }
@Test @Test
@Description("Validate adding a pet to a newly added owner")
public void testAddPetToNewlyAddedOwner() { public void testAddPetToNewlyAddedOwner() {
findOwnersPage.navigateToFindOwnersPage(); findOwnersPage.navigateToFindOwnersPage();
findOwnersPage.clickOnAddOwnerButton(); findOwnersPage.clickOnAddOwnerButton();
@ -71,20 +64,18 @@ public class TS03AddPetTest extends TestBase {
assertTrue(ownerPage.isPetNameDisplayed("petName")); assertTrue(ownerPage.isPetNameDisplayed("petName"));
} }
@Test(priority = 1) @Test
@Description("Validate adding a new pet to an already existing owner")
public void testAddPetToExistingOwner() { public void testAddPetToExistingOwner() {
navigateToAddPetForExistingOwner(); navigateToAddPetForExistingOwner(4);
addOrEditPet("add", "petName2", "birthDate2", "petType2"); addOrEditPet("add", "petName2", "birthDate2", "petType2");
assertTrue(ownerPage.isPetAddedSuccessMessageDisplayed()); assertTrue(ownerPage.isPetAddedSuccessMessageDisplayed());
assertTrue(ownerPage.isPetNameDisplayed("petName2")); assertTrue(ownerPage.isPetNameDisplayed("petName2"));
} }
@Test(priority = 2) @Test
@Description("Validate adding the same pet twice")
public void testAddingSamePetTwice() { public void testAddingSamePetTwice() {
navigateToAddPetForExistingOwner(); navigateToAddPetForExistingOwner(1);
addOrEditPet("add", "petName3", "birthDate3", "petType3"); addOrEditPet("add", "petName3", "birthDate3", "petType3");
driver.navigate().back(); driver.navigate().back();
@ -93,43 +84,39 @@ public class TS03AddPetTest extends TestBase {
assertTrue(addPetPage.isErrorMessageDisplayedForSamePetName()); assertTrue(addPetPage.isErrorMessageDisplayedForSamePetName());
} }
@Test(priority = 3) @Test
@Description("Validate adding a pet without filling any of the fields")
public void testAddPetWithEmptyFields() { public void testAddPetWithEmptyFields() {
navigateToAddPetForExistingOwner(); navigateToAddPetForExistingOwner(1);
addPetPage.clickOnAddPetButton(); addPetPage.clickOnAddPetButton();
String expectedErrorMessage = tap.getProperty("emptyPetFieldsErrorMessage"); String expectedErrorMessage = tap.getProperty("emptyPetFieldsErrorMessage");
assertTrue(addPetPage.isErrorMessageDisplayedForEmptyFields(expectedErrorMessage)); assertTrue(addPetPage.isErrorMessageDisplayedForEmptyFields(expectedErrorMessage));
} }
@Test(priority = 4) @Test
@Description("Validate adding a pet with a future birth date")
public void testAddPetWithFutureBirthDate() { public void testAddPetWithFutureBirthDate() {
navigateToAddPetForExistingOwner(); navigateToAddPetForExistingOwner(1);
addOrEditPet("add", "petName4", "futureBirthDate", "petType4"); addOrEditPet("add", "petName4", "futureBirthDate", "petType4");
assertTrue(addPetPage.isInvalidDateErrorMessageDisplayed()); assertTrue(addPetPage.isInvalidDateErrorMessageDisplayed());
} }
// Pet is still added after putting numbers in 'Name' field - REPORT DEFECT!!! // Pet is still added after putting numbers in 'Name' field - REPORT DEFECT!!!
@Test(priority = 5) @Test
@Description("Validate adding numbers in the 'Name' field")
public void testAddNumbersInNameField() { public void testAddNumbersInNameField() {
navigateToAddPetForExistingOwner(); navigateToAddPetForExistingOwner(1);
addOrEditPet("add", "numberPetName", "birthDate5", "petType5"); addOrEditPet("add", "numberPetName", "birthDate5", "petType5");
assertFalse(ownerPage.isPetAddedSuccessMessageDisplayed()); assertFalse(ownerPage.isPetAddedSuccessMessageDisplayed());
} }
@Test(priority = 6) @Test
@Description("Validate updating a pet")
public void testUpdatePet() { public void testUpdatePet() {
findOwnersPage.navigateToFindOwnersPage(); findOwnersPage.navigateToFindOwnersPage();
findOwnersPage.clickOnFindOwnerButton(); findOwnersPage.clickOnFindOwnerButton();
ListOwnersPage listOwnersPage = new ListOwnersPage(driver, locators); ListOwnersPage listOwnersPage = new ListOwnersPage(driver, locators);
listOwnersPage.clickOnNameFromTable(); listOwnersPage.clickOnNameFromTable(1);
ownerPage.clickOnEditPetButton(); ownerPage.clickOnEditPetButton();
addPetPage.clearFields(); addPetPage.clearFields();

View file

@ -1,22 +1,19 @@
package selenium.scenarios; package selenium.scenarios;
import jdk.jfr.Description; import org.junit.Before;
import org.testng.annotations.BeforeMethod; import org.junit.Test;
import org.testng.annotations.Test;
import selenium.TestBase; import selenium.TestBase;
import selenium.pages.*; import selenium.pages.*;
import static org.testng.AssertJUnit.assertTrue; import static org.junit.Assert.assertTrue;
public class TS04AddVisitTest extends TestBase { public class AddVisitTest extends TestBase {
private OwnerPage ownerPage; private OwnerPage ownerPage;
private FindOwnersPage findOwnersPage; private FindOwnersPage findOwnersPage;
private AddVisitPage addVisitPage; private AddVisitPage addVisitPage;
@BeforeMethod @Before
public void setObjects() { public void setObjects() {
ownerPage = new OwnerPage(driver, locators); ownerPage = new OwnerPage(driver, locators);
findOwnersPage = new FindOwnersPage(driver, locators); findOwnersPage = new FindOwnersPage(driver, locators);
@ -38,13 +35,11 @@ public class TS04AddVisitTest extends TestBase {
findOwnersPage.clickOnFindOwnerButton(); findOwnersPage.clickOnFindOwnerButton();
ListOwnersPage listOwnersPage = new ListOwnersPage(driver, locators); ListOwnersPage listOwnersPage = new ListOwnersPage(driver, locators);
listOwnersPage.clickOnNameFromTable(); listOwnersPage.clickOnNameFromTable(1);
ownerPage.clickOnAddVisitButton(); ownerPage.clickOnAddVisitButton();
} }
// Spelling mistake in success message - Report
@Test @Test
@Description("Validate adding a visit for a pet")
public void testAddVisitForPet() { public void testAddVisitForPet() {
navigateToVisitPage(); navigateToVisitPage();
@ -53,8 +48,7 @@ public class TS04AddVisitTest extends TestBase {
assertTrue(ownerPage.isVisitAdded("description")); assertTrue(ownerPage.isVisitAdded("description"));
} }
@Test(priority = 1) @Test
@Description("Validate adding a visit without filling any of the fields")
public void testVisitEmptyFields() { public void testVisitEmptyFields() {
navigateToVisitPage(); navigateToVisitPage();
@ -63,8 +57,7 @@ public class TS04AddVisitTest extends TestBase {
assertTrue(addVisitPage.isErrorMessageDisplayedForEmptyField(expectedErrorMessage)); assertTrue(addVisitPage.isErrorMessageDisplayedForEmptyField(expectedErrorMessage));
} }
@Test(priority = 2) @Test
@Description("Validate adding a visit with an invalid date")
public void testInvalidDate() { public void testInvalidDate() {
navigateToVisitPage(); navigateToVisitPage();

View file

@ -1,10 +1,9 @@
package selenium.scenarios; package selenium.scenarios;
import jdk.jfr.Description; import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import selenium.TestBase; import selenium.TestBase;
import selenium.pages.AddOwnerPage; import selenium.pages.AddOwnerPage;
import selenium.pages.FindOwnersPage; import selenium.pages.FindOwnersPage;
@ -13,16 +12,16 @@ import selenium.pages.OwnerPage;
import java.util.List; import java.util.List;
import static org.testng.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.testng.Assert.assertTrue; import static org.junit.Assert.assertTrue;
public class TS01FindOwnersTest extends TestBase { public class FindOwnersTest extends TestBase {
private OwnerPage ownerPage; private OwnerPage ownerPage;
private FindOwnersPage findOwnersPage; private FindOwnersPage findOwnersPage;
@BeforeMethod @Before
public void setObjects() { public void setObjects() {
ownerPage = new OwnerPage(driver, locators); ownerPage = new OwnerPage(driver, locators);
findOwnersPage = new FindOwnersPage(driver, locators); findOwnersPage = new FindOwnersPage(driver, locators);
@ -35,46 +34,38 @@ public class TS01FindOwnersTest extends TestBase {
} }
@Test @Test
@Description("Validate if the correct owner is displayed after searching by an existing last name")
public void testFindOwnerByExistingLastName() { public void testFindOwnerByExistingLastName() {
setupFindOwnersPage(input.getProperty("existingLastName")); setupFindOwnersPage(input.getProperty("existingLastName"));
assertTrue(ownerPage.isLastNameDisplayed(input.getProperty("existingLastName")), assertTrue(ownerPage.isLastNameDisplayed(input.getProperty("existingLastName")));
"The last name should be displayed on the Owner page");
} }
@Test(priority = 1) @Test
@Description("Validate if an owner is displayed after searching by an existing first name")
public void testFindOwnerByExistingFirstName() { public void testFindOwnerByExistingFirstName() {
setupFindOwnersPage(input.getProperty("existingFirstName")); setupFindOwnersPage(input.getProperty("existingFirstName"));
String ownerNotFoundText = findOwnersPage.getOwnerNotFoundText(); String ownerNotFoundText = findOwnersPage.getOwnerNotFoundText();
String expectedText = tap.getProperty("ownerNotFoundText"); String expectedText = tap.getProperty("ownerNotFoundText");
assertEquals(ownerNotFoundText, expectedText, "Expected text has been displayed"); assertEquals(expectedText, ownerNotFoundText);
} }
@Test(priority = 2) @Test
@Description("Validate if an owner is displayed after searching for a non-existing last name")
public void testFindOwnerByNonExistingLastName() { public void testFindOwnerByNonExistingLastName() {
setupFindOwnersPage(input.getProperty("nonExistingLastName")); setupFindOwnersPage(input.getProperty("nonExistingLastName"));
String ownerNotFoundText = findOwnersPage.getOwnerNotFoundText(); String ownerNotFoundText = findOwnersPage.getOwnerNotFoundText();
String expectedText = tap.getProperty("ownerNotFoundText"); String expectedText = tap.getProperty("ownerNotFoundText");
assertEquals(ownerNotFoundText, expectedText, "Expected text has been displayed"); assertEquals(expectedText, ownerNotFoundText);
} }
@Test(priority = 3) @Test
@Description("Validate case sensitivity after searching by an existing last name")
public void testCaseSensitiveLastName() { public void testCaseSensitiveLastName() {
setupFindOwnersPage(input.getProperty("caseSensitiveLastName")); setupFindOwnersPage(input.getProperty("caseSensitiveLastName"));
assertTrue(ownerPage.isLastNameDisplayed(input.getProperty("existingLastName")), assertTrue(ownerPage.isLastNameDisplayed(input.getProperty("existingLastName")));
"The last name should be displayed on the Owner page");
} }
@Test(priority = 4) @Test
@Description("Validate if all owners are displayed after clicking the 'Find Owner' button "
+ "without filling the 'Last name' field")
public void testEmptyLastNameField() { public void testEmptyLastNameField() {
setupFindOwnersPage(""); setupFindOwnersPage("");
@ -82,17 +73,15 @@ public class TS01FindOwnersTest extends TestBase {
listOwnersPage.tableAppearance(); listOwnersPage.tableAppearance();
} }
@Test(priority = 5) @Test
@Description("Validate if you can navigate to the Owner page after clicking on a name from the table")
public void testNavigateToOwnerPageFromTable() { public void testNavigateToOwnerPageFromTable() {
setupFindOwnersPage(""); setupFindOwnersPage("");
ListOwnersPage listOwnersPage = new ListOwnersPage(driver, locators); ListOwnersPage listOwnersPage = new ListOwnersPage(driver, locators);
listOwnersPage.clickOnNameFromTable(); listOwnersPage.clickOnNameFromTable(1);
} }
@Test(priority = 6) @Test
@Description("Validate finding a newly added owner")
public void testFindNewlyAddedOwner() { public void testFindNewlyAddedOwner() {
findOwnersPage.navigateToFindOwnersPage(); findOwnersPage.navigateToFindOwnersPage();
findOwnersPage.clickOnAddOwnerButton(); findOwnersPage.clickOnAddOwnerButton();

View file

@ -1,21 +1,19 @@
package selenium.scenarios; package selenium.scenarios;
import org.springframework.context.annotation.Description; import org.junit.Before;
import org.testng.annotations.BeforeMethod; import org.junit.Test;
import org.testng.annotations.Test;
import selenium.TestBase; import selenium.TestBase;
import selenium.pages.FindOwnersPage; import selenium.pages.FindOwnersPage;
import selenium.pages.HomePage; import selenium.pages.HomePage;
import static org.testng.AssertJUnit.assertTrue; import static org.junit.Assert.assertTrue;
public class TS05HomePageTest extends TestBase { public class HomePageTest extends TestBase {
private HomePage homePage; private HomePage homePage;
private FindOwnersPage findOwnersPage; private FindOwnersPage findOwnersPage;
@BeforeMethod @Before
public void setObjects() { public void setObjects() {
homePage = new HomePage(driver, locators); homePage = new HomePage(driver, locators);
findOwnersPage = new FindOwnersPage(driver, locators); findOwnersPage = new FindOwnersPage(driver, locators);
@ -27,7 +25,6 @@ public class TS05HomePageTest extends TestBase {
} }
@Test @Test
@Description("Validate if you can navigate to home page by clicking on the 'Home' header")
public void testNavigateHomeFromHeader() { public void testNavigateHomeFromHeader() {
findOwnersPage.navigateToFindOwnersPage(); findOwnersPage.navigateToFindOwnersPage();
@ -35,8 +32,7 @@ public class TS05HomePageTest extends TestBase {
checkForCorrectWelcomePhoto(); checkForCorrectWelcomePhoto();
} }
@Test(priority = 1) @Test
@Description("Validate if you can navigate to home by page by clicking on the logo of the application")
public void navigateHomeFromLogo() { public void navigateHomeFromLogo() {
findOwnersPage.navigateToFindOwnersPage(); findOwnersPage.navigateToFindOwnersPage();

View file

@ -1,9 +0,0 @@
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
<suite name="SpringPetClinic">
<test name="SpringPetClinicTest">
<packages>
<package name="selenium.scenarios"/>
</packages>
</test>
</suite>