Search in sources :

Example 1 with ParameterByTypeTransformer

use of io.cucumber.cucumberexpressions.ParameterByTypeTransformer in project cucumber-jvm by cucumber.

the class StepTypeRegistryTest method should_set_default_parameter_transformer.

@Test
void should_set_default_parameter_transformer() {
    ParameterByTypeTransformer expected = (fromValue, toValueType) -> null;
    registry.setDefaultParameterTransformer(expected);
}
Also used : Date(java.util.Date) Expression(io.cucumber.cucumberexpressions.Expression) DataTableType(io.cucumber.datatable.DataTableType) Test(org.junit.jupiter.api.Test) ExpressionFactory(io.cucumber.cucumberexpressions.ExpressionFactory) ParameterByTypeTransformer(io.cucumber.cucumberexpressions.ParameterByTypeTransformer) TableCellByTypeTransformer(io.cucumber.datatable.TableCellByTypeTransformer) Is.is(org.hamcrest.core.Is.is) DocStringType(io.cucumber.docstring.DocStringType) JsonNode(com.fasterxml.jackson.databind.JsonNode) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) TableEntryByTypeTransformer(io.cucumber.datatable.TableEntryByTypeTransformer) ENGLISH(java.util.Locale.ENGLISH) ParameterType(io.cucumber.cucumberexpressions.ParameterType) DataTable(io.cucumber.datatable.DataTable) ParameterByTypeTransformer(io.cucumber.cucumberexpressions.ParameterByTypeTransformer) Test(org.junit.jupiter.api.Test)

Example 2 with ParameterByTypeTransformer

use of io.cucumber.cucumberexpressions.ParameterByTypeTransformer in project cucumber-jvm by cucumber.

the class CachingGlue method prepareGlue.

void prepareGlue(StepTypeRegistry stepTypeRegistry) throws DuplicateStepDefinitionException {
    StepExpressionFactory stepExpressionFactory = new StepExpressionFactory(stepTypeRegistry, bus);
    // TODO: separate prepared and unprepared glue into different classes
    parameterTypeDefinitions.forEach(ptd -> {
        ParameterType<?> parameterType = ptd.parameterType();
        stepTypeRegistry.defineParameterType(parameterType);
        emitParameterTypeDefined(parameterType);
    });
    dataTableTypeDefinitions.forEach(dtd -> stepTypeRegistry.defineDataTableType(dtd.dataTableType()));
    docStringTypeDefinitions.forEach(dtd -> stepTypeRegistry.defineDocStringType(dtd.docStringType()));
    if (defaultParameterTransformers.size() == 1) {
        DefaultParameterTransformerDefinition definition = defaultParameterTransformers.get(0);
        ParameterByTypeTransformer transformer = definition.parameterByTypeTransformer();
        stepTypeRegistry.setDefaultParameterTransformer(transformer);
    } else if (defaultParameterTransformers.size() > 1) {
        throw new DuplicateDefaultParameterTransformers(defaultParameterTransformers);
    }
    if (defaultDataTableEntryTransformers.size() == 1) {
        DefaultDataTableEntryTransformerDefinition definition = defaultDataTableEntryTransformers.get(0);
        TableEntryByTypeTransformer transformer = definition.tableEntryByTypeTransformer();
        stepTypeRegistry.setDefaultDataTableEntryTransformer(transformer);
    } else if (defaultDataTableEntryTransformers.size() > 1) {
        throw new DuplicateDefaultDataTableEntryTransformers(defaultDataTableEntryTransformers);
    }
    if (defaultDataTableCellTransformers.size() == 1) {
        DefaultDataTableCellTransformerDefinition definition = defaultDataTableCellTransformers.get(0);
        TableCellByTypeTransformer transformer = definition.tableCellByTypeTransformer();
        stepTypeRegistry.setDefaultDataTableCellTransformer(transformer);
    } else if (defaultDataTableCellTransformers.size() > 1) {
        throw new DuplicateDefaultDataTableCellTransformers(defaultDataTableCellTransformers);
    }
    // TODO: Redefine hooks for each scenario, similar to how we're doing
    // for CoreStepDefinition
    beforeHooks.forEach(this::emitHook);
    beforeStepHooks.forEach(this::emitHook);
    stepDefinitions.forEach(stepDefinition -> {
        StepExpression expression = stepExpressionFactory.createExpression(stepDefinition);
        CoreStepDefinition coreStepDefinition = new CoreStepDefinition(bus.generateId(), stepDefinition, expression);
        CoreStepDefinition previous = stepDefinitionsByPattern.get(stepDefinition.getPattern());
        if (previous != null) {
            throw new DuplicateStepDefinitionException(previous, stepDefinition);
        }
        stepDefinitionsByPattern.put(coreStepDefinition.getExpression().getSource(), coreStepDefinition);
        emitStepDefined(coreStepDefinition);
    });
    afterStepHooks.forEach(this::emitHook);
    afterHooks.forEach(this::emitHook);
}
Also used : DefaultDataTableCellTransformerDefinition(io.cucumber.core.backend.DefaultDataTableCellTransformerDefinition) StepExpressionFactory(io.cucumber.core.stepexpression.StepExpressionFactory) ParameterByTypeTransformer(io.cucumber.cucumberexpressions.ParameterByTypeTransformer) TableEntryByTypeTransformer(io.cucumber.datatable.TableEntryByTypeTransformer) DefaultParameterTransformerDefinition(io.cucumber.core.backend.DefaultParameterTransformerDefinition) StepExpression(io.cucumber.core.stepexpression.StepExpression) DefaultDataTableEntryTransformerDefinition(io.cucumber.core.backend.DefaultDataTableEntryTransformerDefinition) TableCellByTypeTransformer(io.cucumber.datatable.TableCellByTypeTransformer)

Aggregations

ParameterByTypeTransformer (io.cucumber.cucumberexpressions.ParameterByTypeTransformer)2 TableCellByTypeTransformer (io.cucumber.datatable.TableCellByTypeTransformer)2 TableEntryByTypeTransformer (io.cucumber.datatable.TableEntryByTypeTransformer)2 JsonNode (com.fasterxml.jackson.databind.JsonNode)1 DefaultDataTableCellTransformerDefinition (io.cucumber.core.backend.DefaultDataTableCellTransformerDefinition)1 DefaultDataTableEntryTransformerDefinition (io.cucumber.core.backend.DefaultDataTableEntryTransformerDefinition)1 DefaultParameterTransformerDefinition (io.cucumber.core.backend.DefaultParameterTransformerDefinition)1 StepExpression (io.cucumber.core.stepexpression.StepExpression)1 StepExpressionFactory (io.cucumber.core.stepexpression.StepExpressionFactory)1 Expression (io.cucumber.cucumberexpressions.Expression)1 ExpressionFactory (io.cucumber.cucumberexpressions.ExpressionFactory)1 ParameterType (io.cucumber.cucumberexpressions.ParameterType)1 DataTable (io.cucumber.datatable.DataTable)1 DataTableType (io.cucumber.datatable.DataTableType)1 DocStringType (io.cucumber.docstring.DocStringType)1 Date (java.util.Date)1 ENGLISH (java.util.Locale.ENGLISH)1 MatcherAssert.assertThat (org.hamcrest.MatcherAssert.assertThat)1 Is.is (org.hamcrest.core.Is.is)1 Test (org.junit.jupiter.api.Test)1