diff options
author | mrfoxygmfr <mrfoxygmfr@sch9.ru> | 2025-05-07 00:19:19 +0300 |
---|---|---|
committer | mrfoxygmfr <mrfoxygmfr@sch9.ru> | 2025-05-07 00:19:19 +0300 |
commit | 6e1fdefc67e150c14ffeb05e7d7fdcfcacddf8ad (patch) | |
tree | b49135c400fd832298f2fd01bd8cd22e4ce8cf5d | |
parent | cfd262339d7e62b1e26a228976883af04d1892e1 (diff) |
test: operations controller tests
-rw-r--r-- | src/test/java/ru/mrfoxygmfr/warehouse_accounting/http/OperationsControllerTest.java | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/src/test/java/ru/mrfoxygmfr/warehouse_accounting/http/OperationsControllerTest.java b/src/test/java/ru/mrfoxygmfr/warehouse_accounting/http/OperationsControllerTest.java new file mode 100644 index 0000000..0915450 --- /dev/null +++ b/src/test/java/ru/mrfoxygmfr/warehouse_accounting/http/OperationsControllerTest.java @@ -0,0 +1,148 @@ +package ru.mrfoxygmfr.warehouse_accounting.http; + +import org.junit.jupiter.api.Test; +import org.openqa.selenium.*; +import org.openqa.selenium.chrome.ChromeDriver; +import org.openqa.selenium.support.ui.Select; + +import java.util.List; +import java.util.concurrent.TimeUnit; + +import static org.junit.jupiter.api.Assertions.*; + +public class OperationsControllerTest { + private final String srcURL = "http://localhost:8080/"; + private final String title = "Система складского учета"; + + @Test + void MainPageTest() { + ChromeDriver driver = new ChromeDriver(); + driver.get(srcURL); + assertEquals(title, driver.getTitle()); + driver.quit(); + } + + @Test + void CreateNewOperation() { + ChromeDriver driver = new ChromeDriver(); + driver.get("http://localhost:8080/newOperation?partnerId=2"); + driver.manage().timeouts().implicitlyWait(500, TimeUnit.MILLISECONDS); + + assertEquals("CHECKOUT", new Select(driver.findElement(By.id("operationStatus"))).getFirstSelectedOption().getText()); + assertEquals("фамилия имя", new Select(driver.findElement(By.id("operationResponsible"))).getFirstSelectedOption().getText()); + + driver.quit(); + } + + @Test + void AddAndManageProduct() { + ChromeDriver driver = new ChromeDriver(); + driver.get("http://localhost:8080/operationProducts/2"); + + WebElement newProduct = driver.findElement(By.id("newOperationProductBtn")); + newProduct.click(); + driver.manage().timeouts().implicitlyWait(500, TimeUnit.MILLISECONDS); + + WebElement products = driver.findElement(By.cssSelector("table[class*='table-bordered']")); + List<WebElement> productRows = products.findElements(By.tagName("tr")); + + for (WebElement row : productRows) { + List<WebElement> rowElements = row.findElements(By.tagName("td")); + if (rowElements.isEmpty() || rowElements.get(0).getText().equals("Название")) { + continue; + } + + rowElements.get(2).click(); + driver.manage().timeouts().implicitlyWait(500, TimeUnit.MILLISECONDS); + break; + } + + driver.findElement(By.id("productAmount")).sendKeys("10"); + driver.findElement(By.id("saveBtn")).click(); + driver.manage().timeouts().implicitlyWait(500, TimeUnit.MILLISECONDS); + + products = driver.findElement(By.cssSelector("table[class*='table-bordered']")); + productRows = products.findElements(By.tagName("tr")); + + for (WebElement row : productRows) { + List<WebElement> rowElements = row.findElements(By.tagName("td")); + if (rowElements.isEmpty() || rowElements.get(0).getText().equals("Название")) { + continue; + } + + assertEquals("10", rowElements.get(2).getText()); + rowElements.get(2).click(); + driver.manage().timeouts().implicitlyWait(500, TimeUnit.MILLISECONDS); + driver.findElement(By.id("productAmount")).sendKeys("0"); + driver.findElement(By.id("saveBtn")).click(); + driver.manage().timeouts().implicitlyWait(500, TimeUnit.MILLISECONDS); + break; + } + + driver.quit(); + } + + @Test + void FilterFound() { + ChromeDriver driver = new ChromeDriver(); + driver.get("http://localhost:8080/"); + + String expectedPartnerName = "Поставщик"; + String expectedType = "SUPPLY"; + String expectedStatus = "CHECKOUT"; + + driver.findElement(By.id("operationPartnerNameFilter")).sendKeys("Поставщик"); + driver.findElement(By.id("saveBtn")).click(); + driver.manage().timeouts().implicitlyWait(500, TimeUnit.MILLISECONDS); + + WebElement operations = driver.findElement(By.cssSelector("table[class*='table-bordered']")); + List<WebElement> operationRows = operations.findElements(By.tagName("tr")); + + boolean found = false; + for (WebElement row : operationRows) { + List<WebElement> rowElements = row.findElements(By.tagName("td")); + if (rowElements.isEmpty() || !rowElements.get(2).getText().equals(expectedPartnerName)) { + continue; + } + + assertEquals(expectedPartnerName, rowElements.get(2).getText()); + assertEquals(expectedType, rowElements.get(1).getText()); + assertEquals(expectedStatus, rowElements.get(3).getText()); + + found = true; + } + + assertTrue(found); + driver.quit(); + } + + @Test + void FilterNotFound() { + ChromeDriver driver = new ChromeDriver(); + driver.get("http://localhost:8080/"); + + driver.findElement(By.id("operationPartnerNameFilter")).sendKeys("не найден"); + driver.findElement(By.id("saveBtn")).click(); + driver.manage().timeouts().implicitlyWait(500, TimeUnit.MILLISECONDS); + + WebElement operations = driver.findElement(By.cssSelector("table[class*='table-bordered']")); + List<WebElement> operationRows = operations.findElements(By.tagName("tr")); + + String expected = "Данному фильтру не удовлетворяет ни одной операции."; + + boolean found = false; + for (WebElement row : operationRows) { + System.out.println(row.getText()); + List<WebElement> rowElements = row.findElements(By.tagName("td")); + if (rowElements.isEmpty() || !rowElements.getFirst().getText().equals(expected)) { + continue; + } + + found = true; + } + + assertTrue(found); + driver.quit(); + } +} + |