AdminPage.java 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package se.citerus.dddsample.acceptance.pages;
  2. import org.openqa.selenium.By;
  3. import org.openqa.selenium.WebDriver;
  4. import org.openqa.selenium.WebElement;
  5. import java.util.List;
  6. import java.util.Optional;
  7. import static org.junit.Assert.assertEquals;
  8. public class AdminPage {
  9. private final WebDriver driver;
  10. public AdminPage(WebDriver driver) {
  11. this.driver = driver;
  12. driver.get("http://localhost:8080/dddsample/admin/list");
  13. assertEquals("Cargo Administration", driver.getTitle());
  14. }
  15. public void listAllCargo() {
  16. driver.findElement(By.linkText("List all cargos")).click();
  17. assertEquals("Cargo Administration", driver.getTitle());
  18. }
  19. public CargoBookingPage bookNewCargo() {
  20. driver.findElement(By.linkText("Book new cargo")).click();
  21. return new CargoBookingPage(driver);
  22. }
  23. public boolean listedCargoContains(String expectedTrackingId) {
  24. List<WebElement> cargoList = driver.findElements(By.cssSelector("#body table tbody tr td a"));
  25. Optional<WebElement> matchingCargo = cargoList.stream().filter(cargo -> cargo.getText().equals(expectedTrackingId)).findFirst();
  26. return matchingCargo.isPresent();
  27. }
  28. public CargoDetailsPage showDetailsFor(String cargoTrackingId) {
  29. driver.findElement(By.linkText(cargoTrackingId)).click();
  30. return new CargoDetailsPage(driver);
  31. }
  32. }