Skip to content

Commit

Permalink
Add opposite checking steps part3 (#69)
Browse files Browse the repository at this point in the history
* added new step, update selenide to 4.11.4, updated unit tests
@Тогда("^элементы списка \"([^\"]*)\" не содержат текст \"([^\"]*)\"$")
  • Loading branch information
snfrolov authored and GannaChernyshova committed May 25, 2018
1 parent 80d8377 commit 4afa9ff
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 7 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ targetCompatibility = 1.8

project.ext {
cucumberVersion = '2.4.0'
selenideVersion = '4.11.2'
selenideVersion = '4.11.4'
}

dependencies {
Expand Down
19 changes: 16 additions & 3 deletions src/main/java/ru/alfabank/steps/DefaultSteps.java
Original file line number Diff line number Diff line change
Expand Up @@ -821,6 +821,20 @@ public void checkListElementsContainsText(String listName, String expectedValue)
elementsListText.stream().allMatch(item -> item.contains(value.toLowerCase())));
}

/**
* Проверка, что каждый элемент списка не содержит ожидаемый текст
*/
@Тогда("^элементы списка \"([^\"]*)\" не содержат текст \"([^\"]*)\"$")
public void checkListElementsNotContainsText(String listName, String expectedValue) {
final String value = getPropertyOrValue(expectedValue);
List<SelenideElement> listOfElementsFromPage = akitaScenario.getCurrentPage().getElementsList(listName);
List<String> elementsListText = listOfElementsFromPage.stream()
.map(element -> element.getText().trim().toLowerCase())
.collect(toList());
assertFalse(String.format("Элемены списка %s: [%s] содержат текст [%s] ", listName, elementsListText, value),
elementsListText.stream().allMatch(item -> item.contains(value.toLowerCase())));
}

/**
* Ввод в поле случайной последовательности латинских или кириллических букв задаваемой длины
*/
Expand Down Expand Up @@ -869,12 +883,11 @@ public void inputAndSetRandomNumSequence(String elementName, int seqLength, Stri
public void checkListTextsByRegExp(String listName, String pattern) {
akitaScenario.getCurrentPage().getElementsList(listName).forEach(element -> {
String str = akitaScenario.getCurrentPage().getAnyElementText(element);
Assert.assertTrue(
format("Текст '%s' из списка '%s' не соответствует формату регулярного выражения", str, listName), isTextMatches(str, pattern));
assertTrue(format("Текст '%s' из списка '%s' не соответствует формату регулярного выражения", str, listName),
isTextMatches(str, pattern));
});
}


/**
* Выполняется запуск js-скрипта с указанием в js.executeScript его логики
* Скрипт можно передать как аргумент метода или значение из application.properties
Expand Down
21 changes: 18 additions & 3 deletions src/test/java/ru/alfabank/steps/DefaultStepsTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -536,20 +536,35 @@ public void selectRandomElementFromListAndSaveVarNegative() {
}

@Test
public void checkListElementsContainsTextPositive() {
public void testCheckListElementsContainsTextPositive() {
ds.checkListElementsContainsText("List2", "item");
}

@Test
public void checkListElementsContainsTextPositiveWithProps() {
public void testCheckListElementsContainsTextPositiveWithProps() {
ds.checkListElementsContainsText("List2", "itemValueInProps");
}

@Test(expected = AssertionError.class)
public void checkListElementsContainsTextNegative() {
public void testCheckListElementsContainsTextNegative() {
ds.checkListElementsContainsText("List2", "item1");
}

@Test
public void testCheckListElementsNotContainsTextPositive() {
ds.checkListElementsNotContainsText("List2", "item1");
}

@Test(expected = AssertionError.class)
public void testCheckListElementsNotContainsTextNegative() {
ds.checkListElementsNotContainsText("List2", "item");
}

@Test(expected = AssertionError.class)
public void testCheckListElementsNotContainsTextNegativeWithProps() {
ds.checkListElementsNotContainsText("List2", "itemValueInProps");
}

@Test
public void checkIfListInnerTextConsistsOfTableElements() {
ArrayList<String> types = new ArrayList<>();
Expand Down

0 comments on commit 4afa9ff

Please sign in to comment.