use of io.cucumber.datatable.DataTable in project cucumber-jvm by cucumber.
the class StepExpressionFactoryTest method table_expression_with_type_creates_table_from_table.
@Test
void table_expression_with_type_creates_table_from_table() {
StepDefinition stepDefinition = new StubStepDefinition("Given some stuff:", DataTable.class);
StepExpression expression = stepExpressionFactory.createExpression(stepDefinition);
List<Argument> match = expression.match("Given some stuff:", table);
DataTable dataTable = (DataTable) match.get(0).getValue();
assertThat(dataTable.cells(), is(equalTo(table)));
}
use of io.cucumber.datatable.DataTable in project cucumber-jvm by cucumber.
the class CoreStepDefinitionTest method passes_transposed_data_table.
@Test
void passes_transposed_data_table() throws Throwable {
Method m = Steps.class.getMethod("plainDataTable", DataTable.class);
Feature feature = TestFeatureParser.parse("" + "Feature: Test feature\n" + " Scenario: Test scenario\n" + " Given some text\n" + " | Birth Date | \n" + " | 1957-05-10 | \n");
DataTable stepDefs = runStepDef(m, true, feature);
assertAll(() -> assertThat(stepDefs.cell(0, 0), is(equalTo("Birth Date"))), () -> assertThat(stepDefs.cell(0, 1), is(equalTo("1957-05-10"))));
}
use of io.cucumber.datatable.DataTable in project cucumber-jvm by cucumber.
the class CoreStepDefinitionTest method passes_plain_data_table.
@Test
void passes_plain_data_table() throws Throwable {
Method m = Steps.class.getMethod("plainDataTable", DataTable.class);
Feature feature = TestFeatureParser.parse("" + "Feature: Test feature\n" + " Scenario: Test scenario\n" + " Given some text\n" + " | Birth Date | \n" + " | 1957-05-10 | \n");
DataTable stepDefs = runStepDef(m, false, feature);
assertAll(() -> assertThat(stepDefs.cell(0, 0), is(equalTo("Birth Date"))), () -> assertThat(stepDefs.cell(1, 0), is(equalTo("1957-05-10"))));
}
use of io.cucumber.datatable.DataTable in project cucumber-jvm by cucumber.
the class StepTypeRegistryTest method should_define_data_table_parameter_type.
@Test
void should_define_data_table_parameter_type() {
DataTableType expected = new DataTableType(Date.class, (DataTable dataTable) -> null);
registry.defineDataTableType(expected);
}
use of io.cucumber.datatable.DataTable in project cucumber-jvm by cucumber.
the class StepExpressionFactory method createExpression.
private StepExpression createExpression(String expressionString, Supplier<Type> tableOrDocStringType, boolean transpose) {
requireNonNull(expressionString, "expressionString can not be null");
requireNonNull(tableOrDocStringType, "tableOrDocStringType can not be null");
final Expression expression = crateExpression(expressionString);
RawTableTransformer<?> tableTransform = (List<List<String>> raw) -> {
DataTable dataTable = DataTable.create(raw, StepExpressionFactory.this.tableConverter);
Type targetType = tableOrDocStringType.get();
return dataTable.convert(Object.class.equals(targetType) ? DataTable.class : targetType, transpose);
};
DocStringTransformer<?> docStringTransform = (text, contentType) -> {
DocString docString = DocString.create(text, contentType, docStringConverter);
Type targetType = tableOrDocStringType.get();
return docString.convert(Object.class.equals(targetType) ? DocString.class : targetType);
};
return new StepExpression(expression, docStringTransform, tableTransform);
}
Aggregations