Search in sources :

Example 6 with Step

use of gherkin.ast.Step in project page-factory-2 by sbtqa.

the class FragmentReplacer method replaceFragmentInScenario.

private void replaceFragmentInScenario(ScenarioDefinition scenario, ScenarioDefinition fragment, String data) throws IllegalAccessException, DataException, FragmentException {
    String language = scenarioLanguageMap.get(scenario);
    List<Step> replacementSteps = new ArrayList<>();
    for (Step step : scenario.getSteps()) {
        if (FragmentUtils.isStepFragmentRequire(step, language) && isFragmentNameMatch(fragment.getName(), step, language, data)) {
            replacementSteps.addAll(replaceStepWithFragment(step, fragment));
        } else {
            replacementSteps.add(step);
        }
    }
    FieldUtils.writeField(scenario, "steps", replacementSteps, true);
}
Also used : ArrayList(java.util.ArrayList) Step(gherkin.ast.Step)

Example 7 with Step

use of gherkin.ast.Step in project page-factory-2 by sbtqa.

the class FragmentReplacer method isFragmentNameMatch.

private boolean isFragmentNameMatch(String name, Step step, String language, String data) throws DataException, FragmentException {
    boolean isFragmentNameMatch = FragmentUtils.getFragmentName(step, language).equals(name);
    if (!isFragmentNameMatch) {
        String scenarioNameFromData = new DataReplacer().replaceDataPlaceholders(step.getText(), data);
        Step stepNew = new Step(step.getLocation(), step.getKeyword(), scenarioNameFromData, step.getArgument());
        isFragmentNameMatch = FragmentUtils.getFragmentName(stepNew, language).equals(name);
    }
    return isFragmentNameMatch;
}
Also used : DataReplacer(ru.sbtqa.tag.pagefactory.data.DataReplacer) Step(gherkin.ast.Step)

Example 8 with Step

use of gherkin.ast.Step in project cucable-plugin by trivago.

the class GherkinToCucableConverter method convertGherkinStepsToCucableSteps.

/**
 * Converts a list of Gherkin steps to Cucable steps including data tables.
 *
 * @param gherkinSteps a {@link Step} list.
 * @return a {@link com.trivago.vo.Step} list.
 */
List<com.trivago.vo.Step> convertGherkinStepsToCucableSteps(final List<Step> gherkinSteps) {
    List<com.trivago.vo.Step> steps = new ArrayList<>();
    for (Step gherkinStep : gherkinSteps) {
        com.trivago.vo.Step step;
        com.trivago.vo.DataTable dataTable = null;
        String docString = null;
        Node argument = gherkinStep.getArgument();
        if (argument instanceof DataTable) {
            dataTable = convertGherkinDataTableToCucableDataTable((DataTable) argument);
        } else if (argument instanceof DocString) {
            docString = ((DocString) argument).getContent();
        }
        String keywordAndName = gherkinStep.getKeyword().concat(gherkinStep.getText());
        step = new com.trivago.vo.Step(keywordAndName, dataTable, docString);
        steps.add(step);
    }
    return steps;
}
Also used : DataTable(gherkin.ast.DataTable) Node(gherkin.ast.Node) ArrayList(java.util.ArrayList) DocString(gherkin.ast.DocString) Step(gherkin.ast.Step) DocString(gherkin.ast.DocString)

Aggregations

Step (gherkin.ast.Step)8 DataTable (gherkin.ast.DataTable)3 ArrayList (java.util.ArrayList)3 DocString (gherkin.ast.DocString)2 Location (gherkin.ast.Location)2 Node (gherkin.ast.Node)2 Test (org.junit.Test)2 Map (java.util.Map)1 DataReplacer (ru.sbtqa.tag.pagefactory.data.DataReplacer)1