mirror of
https://github.com/spring-projects/spring-petclinic.git
synced 2025-07-20 14:55:50 +00:00
Changed all the scenarios with JUnit and did some tweaks on the code so that all tests are independent
This commit is contained in:
parent
c8386f6311
commit
8e27420b0a
9 changed files with 86 additions and 153 deletions
8
pom.xml
8
pom.xml
|
@ -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>
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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")));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -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();
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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();
|
|
@ -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();
|
||||||
|
|
|
@ -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>
|
|
Loading…
Reference in a new issue