From 0e1abbfe524079b5ae2912429942a5e8711bdc3b Mon Sep 17 00:00:00 2001
From: mrfoxygmfr <mrfoxygmfr@sch9.ru>
Date: Tue, 6 May 2025 23:20:17 +0300
Subject: test: storage slots controller

---
 .../http/StorageSlotsControllerTest.java           | 114 +++++++++++++++++++++
 1 file changed, 114 insertions(+)
 create mode 100644 src/test/java/ru/mrfoxygmfr/warehouse_accounting/http/StorageSlotsControllerTest.java

(limited to 'src/test/java/ru')

diff --git a/src/test/java/ru/mrfoxygmfr/warehouse_accounting/http/StorageSlotsControllerTest.java b/src/test/java/ru/mrfoxygmfr/warehouse_accounting/http/StorageSlotsControllerTest.java
new file mode 100644
index 0000000..707ccce
--- /dev/null
+++ b/src/test/java/ru/mrfoxygmfr/warehouse_accounting/http/StorageSlotsControllerTest.java
@@ -0,0 +1,114 @@
+package ru.mrfoxygmfr.warehouse_accounting.http;
+
+import org.junit.jupiter.api.Test;
+import org.openqa.selenium.*;
+import org.openqa.selenium.chrome.ChromeDriver;
+
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+public class StorageSlotsControllerTest {
+    @Test
+    void CreateNewStorageSlot() {
+        ChromeDriver driver = new ChromeDriver();
+        driver.get("http://localhost:8080/storageSlots");
+
+        WebElement newStorageSlot = driver.findElement(By.id("newStorageSlotBtn"));
+        newStorageSlot.click();
+
+        driver.manage().timeouts().implicitlyWait(500, TimeUnit.MILLISECONDS);
+
+        String expectedStorageSlotLocation = "Локация";
+        String expectedStorageSlotHeight = "123";
+        String expectedStorageSlotWidth = "231";
+        String expectedStorageSlotDepth = "312";
+
+        driver.findElement(By.id("storageSlotLocation")).sendKeys(expectedStorageSlotLocation);
+        driver.findElement(By.id("storageSlotHeight")).sendKeys(expectedStorageSlotHeight);
+        driver.findElement(By.id("storageSlotWidth")).sendKeys(expectedStorageSlotWidth);
+        driver.findElement(By.id("storageSlotDepth")).sendKeys(expectedStorageSlotDepth);
+        driver.findElement(By.id("saveBtn")).click();
+        driver.manage().timeouts().implicitlyWait(500, TimeUnit.MILLISECONDS);
+
+        WebElement storageSlots = driver.findElement(By.cssSelector("table[class*='table-bordered']"));
+        List<WebElement> storageSlotRows = storageSlots.findElements(By.tagName("tr"));
+
+        boolean found = false;
+        for (WebElement row : storageSlotRows) {
+            List<WebElement> rowElements = row.findElements(By.tagName("td"));
+            if (rowElements.isEmpty() || !rowElements.get(1).getText().equals(expectedStorageSlotLocation)) {
+                continue;
+            }
+
+            assertEquals(expectedStorageSlotLocation, rowElements.get(1).getText());
+            assertEquals(String.format("%s * %s * %s", expectedStorageSlotHeight, expectedStorageSlotWidth, expectedStorageSlotDepth), rowElements.get(2).getText());
+            found = true;
+        }
+
+        assertTrue(found);
+        driver.quit();
+    }
+
+    @Test
+    void FilterFound() {
+        ChromeDriver driver = new ChromeDriver();
+        driver.get("http://localhost:8080/storageSlots");
+
+        String expectedStorageSlotName = "location";
+        String expectedStorageSlotDimensions = "10 * 10 * 1100";
+        driver.findElement(By.id("storageSlotHeightGreaterFilter")).sendKeys("5");
+        driver.findElement(By.id("storageSlotHeightLessFilter")).sendKeys("15");
+        driver.findElement(By.id("saveBtn")).click();
+        driver.manage().timeouts().implicitlyWait(500, TimeUnit.MILLISECONDS);
+
+        WebElement storageSlots = driver.findElement(By.cssSelector("table[class*='table-bordered']"));
+        List<WebElement> storageSlotRows = storageSlots.findElements(By.tagName("tr"));
+
+        boolean found = false;
+        for (WebElement row : storageSlotRows) {
+            List<WebElement> rowElements = row.findElements(By.tagName("td"));
+            if (rowElements.isEmpty() || !rowElements.get(1).getText().equals(expectedStorageSlotName)) {
+                continue;
+            }
+
+            assertEquals(expectedStorageSlotName, rowElements.get(1).getText());
+            assertEquals(expectedStorageSlotDimensions, rowElements.get(2).getText());
+            found = true;
+        }
+
+        assertTrue(found);
+        driver.quit();
+    }
+
+    @Test
+    void FilterNotFound() {
+        ChromeDriver driver = new ChromeDriver();
+        driver.get("http://localhost:8080/storageSlots");
+
+        driver.findElement(By.id("storageSlotHeightGreaterFilter")).sendKeys("15");
+        driver.findElement(By.id("storageSlotHeightLessFilter")).sendKeys("10");
+        driver.findElement(By.id("saveBtn")).click();
+        driver.manage().timeouts().implicitlyWait(500, TimeUnit.MILLISECONDS);
+
+        WebElement storageSlots = driver.findElement(By.cssSelector("table[class*='table-bordered']"));
+        List<WebElement> storageSlotRows = storageSlots.findElements(By.tagName("tr"));
+
+        String expected = "Данному фильтру не удовлетворяет ни одного места хранения.";
+
+        boolean found = false;
+        for (WebElement row : storageSlotRows) {
+            List<WebElement> rowElements = row.findElements(By.tagName("td"));
+            if (rowElements.isEmpty() || !rowElements.getFirst().getText().equals(expected)) {
+                continue;
+            }
+
+            found = true;
+        }
+
+        assertTrue(found);
+        driver.quit();
+    }
+}
+
-- 
cgit mrf-deployment