aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormrfoxygmfr <mrfoxygmfr@sch9.ru>2025-05-07 00:19:19 +0300
committermrfoxygmfr <mrfoxygmfr@sch9.ru>2025-05-07 00:19:19 +0300
commit6e1fdefc67e150c14ffeb05e7d7fdcfcacddf8ad (patch)
treeb49135c400fd832298f2fd01bd8cd22e4ce8cf5d
parentcfd262339d7e62b1e26a228976883af04d1892e1 (diff)
test: operations controller tests
-rw-r--r--src/test/java/ru/mrfoxygmfr/warehouse_accounting/http/OperationsControllerTest.java148
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();
+ }
+}
+