diff --git a/src/main/java/ru/alfabank/steps/DefaultSteps.java b/src/main/java/ru/alfabank/steps/DefaultSteps.java index 851e5bcd..e4a8fa44 100644 --- a/src/main/java/ru/alfabank/steps/DefaultSteps.java +++ b/src/main/java/ru/alfabank/steps/DefaultSteps.java @@ -820,6 +820,28 @@ public void checkFieldSymbolsCount(String element, int num) { assertEquals(String.format("Неверное количество символов. Ожидаемый результат: %s, текущий результат: %s", num, length), num, length); } + /** + * Производится проверка соответствия числа элементов списка значению, указанному в шаге + */ + @Тогда("^в списке \"([^\"]*)\" содержится (\\d+) (?:элемент|элементов|элемента)") + public void listContainsNumberOfElements(String listName, int quantity) { + List listOfElementsFromPage = akitaScenario.getCurrentPage().getElementsList(listName); + assertTrue(String.format("Число элементов в списке отличается от ожидаемого: %s", listOfElementsFromPage.size()), listOfElementsFromPage.size() == quantity); + + } + + /** + * Производится сопоставление числа элементов списка и значения, указанного в шаге + */ + @Тогда("^в списке \"([^\"]*)\" содержится (более|менее) (\\d+) (?:элементов|элемента)") + public void listContainsMoreOrLessElements(String listName, String moreOrLess, int quantity) { + List listOfElementsFromPage = akitaScenario.getCurrentPage().getElementsList(listName); + if ("более".equals(moreOrLess)) { + assertTrue(String.format("Число элементов списка меньше ожидаемого: %s", listOfElementsFromPage.size()), listOfElementsFromPage.size() > quantity); + } else assertTrue(String.format("Число элементов списка превышает ожидаемое: %s", listOfElementsFromPage.size()), listOfElementsFromPage.size() < quantity); + + } + /** * Возвращает значение из property файла, если отсутствует, то из пользовательских переменных, * если и оно отсутствует, то возвращает значение переданной на вход переменной diff --git a/src/test/java/ru/alfabank/steps/DefaultStepsTest.java b/src/test/java/ru/alfabank/steps/DefaultStepsTest.java index 85ba1b42..eaca2f84 100644 --- a/src/test/java/ru/alfabank/steps/DefaultStepsTest.java +++ b/src/test/java/ru/alfabank/steps/DefaultStepsTest.java @@ -560,6 +560,7 @@ public void testCheckPageTitleFailure() { public void testStringOrLoadFilePropertyOrDefault2() { assertThat(loadValueFromFileOrPropertyOrDefault("testScript"), equalTo("alert('privet');")); } + @Test public void testTestScript() { ds.executeJsScript("HIDEnSHOW()"); @@ -581,5 +582,34 @@ public void testCheckListTextsByRegExpNegative() { ds.checkListTextsByRegExp("List", "[0-9]*"); } + @Test + public void testListContainsNumberOfElementsPositive() { + ds.listContainsNumberOfElements("List", 3); + } + + @Test(expected = AssertionError.class) + public void testListContainsNumberOfElementsNegative() { + ds.listContainsNumberOfElements("List", 4); + } + + @Test + public void testListContainsMoreOrLessElementsLessPositive(){ + ds.listContainsMoreOrLessElements("List", "менее", 4); + } + + @Test + public void testListContainsMoreOrLessElementsMorePositive(){ + ds.listContainsMoreOrLessElements("List", "более", 2); + } + + @Test(expected = AssertionError.class) + public void testListContainsMoreOrLessElementsLessNegative(){ + ds.listContainsMoreOrLessElements("List", "менее", 3); + } + + @Test(expected = AssertionError.class) + public void testListContainsMoreOrLessElementsMoreNegative(){ + ds.listContainsMoreOrLessElements("List", "более", 3); + } } \ No newline at end of file