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);
}
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;
}
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;
}
Aggregations