diff --git a/src/main/java/ru/alfabank/steps/ElementsVerificationSteps.java b/src/main/java/ru/alfabank/steps/ElementsVerificationSteps.java index 0a9c36c1..5a37fd05 100644 --- a/src/main/java/ru/alfabank/steps/ElementsVerificationSteps.java +++ b/src/main/java/ru/alfabank/steps/ElementsVerificationSteps.java @@ -14,11 +14,15 @@ import com.codeborne.selenide.Condition; import com.codeborne.selenide.SelenideElement; +import cucumber.api.DataTable; import cucumber.api.java.en.Then; import cucumber.api.java.ru.Тогда; import lombok.extern.slf4j.Slf4j; import org.hamcrest.Matchers; +import java.util.List; +import java.util.Map; + import static com.codeborne.selenide.Condition.not; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.*; @@ -155,6 +159,18 @@ public void testActualValueContainsSubstring(String elementName, String expected assertThat(String.format("Поле [%s] не содержит значение [%s]", elementName, expectedValue), actualValue, containsString(expectedValue)); } + /** + * Проверка, что значение в поле содержит значение (в приоритете: из property, из переменной сценария, значение аргумента), + * указанное в таблице + * Поля и значения задаются в описании шага, в таблице вида | elementName | value | + */ + @Тогда("^(?:поля|элементы) содержат значения из таблицы") + @Then("^(?:fields|elements) contain values from the DataTable") + public void actualValuesContainsSubstrings(DataTable arg) { + List> table = arg.asMaps(String.class, String.class); + table.stream().forEach(element -> testActualValueContainsSubstring(element.get("elementName"), element.get("value"))); + } + /** * Проверка, что значение в поле содержит текст, указанный в шаге * (в приоритете: из property, из переменной сценария, значение аргумента). diff --git a/src/main/java/ru/alfabank/steps/InputInteractionSteps.java b/src/main/java/ru/alfabank/steps/InputInteractionSteps.java index 830cb4da..f0e7e055 100644 --- a/src/main/java/ru/alfabank/steps/InputInteractionSteps.java +++ b/src/main/java/ru/alfabank/steps/InputInteractionSteps.java @@ -13,6 +13,7 @@ package ru.alfabank.steps; import com.codeborne.selenide.SelenideElement; +import cucumber.api.DataTable; import cucumber.api.java.en.When; import cucumber.api.java.ru.Когда; import lombok.extern.slf4j.Slf4j; @@ -25,6 +26,8 @@ import java.awt.datatransfer.StringSelection; import java.text.DecimalFormat; import java.text.SimpleDateFormat; +import java.util.List; +import java.util.Map; import java.util.concurrent.ThreadLocalRandom; /** @@ -57,6 +60,17 @@ public void cleaningField(String nameOfField) { super.cleanField(nameOfField); } + /** + * В группу полей устанавливаются значения (в приоритете: из property, из переменной сценария, значение аргумента). + * Поля и значения задаются в описании шага, в таблице вида | inputName | value | + */ + @Когда("^в поля введены значения из таблицы") + @When("^into the fields have been typed values from the DataTable") + public void setFieldsValues(DataTable arg) { + List> table = arg.asMaps(String.class, String.class); + table.stream().forEach(element -> setFieldValue(element.get("inputName"), element.get("value"))); + } + /** * Добавление строки (в приоритете: из property, из переменной сценария, значение аргумента) в поле к уже заполненой строке */