private void addOutlineStepsToReport(ScenarioOutline scenarioOutline) { for (Step step : scenarioOutline.getSteps()) { Map<String, Object> stepMap = new HashMap<String, Object>(); stepMap.put("name", step.getText()); stepMap.put("keyword", step.getKeyword()); if (step.getArgument() != null) { Node argument = step.getArgument(); if (argument instanceof DocString) { stepMap.put("doc_string", createDocStringMap((DocString)argument)); } else if (argument instanceof DataTable) { stepMap.put("rows", createDataTableList((DataTable)argument)); } } jsFunctionCall("step", stepMap); } }
private void printScenarioOutline(ScenarioOutline scenarioOutline) { out.println(); printTags(scenarioOutline.getTags(), SCENARIO_INDENT); out.println(SCENARIO_INDENT + getScenarioDefinitionText(scenarioOutline) + " " + getLocationText(currentFeatureFile, scenarioOutline.getLocation().getLine())); printDescription(scenarioOutline.getDescription()); for (Step step : scenarioOutline.getSteps()) { out.println(STEP_INDENT + formats.get("skipped").text(step.getKeyword() + step.getText())); } }
/** * Check the step for the need to replace the fragment * * @param step step to check * @param language step's language * @return returns true if the step needs to be replaced with a fragment */ static boolean isStepFragmentRequire(Step step, String language) { String regex = getFragmentStepRegex(language); return Pattern.matches(regex, step.getText()); }
/** * Find the name of the scenario (fragment) to substitute for this step * * @param step step to substitute * @param language step's language * @return name of the scenario (fragment) to substitute */ static String getFragmentName(Step step, String language) { String regex = getFragmentStepRegex(language); Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(step.getText()); matcher.find(); return matcher.group(1); }
private void setTableScenarioOutline() { List<Step> steps = currentScenarioDefinition.getSteps(); StringBuffer scenarioOutlineBuffer = new StringBuffer(); for (Step step : steps) { scenarioOutlineBuffer.append(step.getKeyword()).append(step.getText()).append("\n\r"); } String scenarioOutline = scenarioOutlineBuffer.toString(); if (table != null) { table.setScenarioOutline(scenarioOutline); } }
private void setTableScenarioOutline() { List<Step> steps = currentScenarioDefinition.getSteps(); StringBuffer scenarioOutlineBuffer = new StringBuffer(); for (Step step : steps) { scenarioOutlineBuffer.append(step.getKeyword()).append(step.getText()).append("\n\r"); } String scenarioOutline = scenarioOutlineBuffer.toString(); if (table != null) { table.setScenarioOutline(scenarioOutline); } }
private Step concreteStep(Step abstractStep, Map<String, String> parameters) { String text = abstractStep.getText(); for (Entry<String, String> entry : parameters.entrySet()) { String target = String.format("<%s>", entry.getKey()); String replacement = entry.getValue(); text = text.replace(target, replacement); } return new Step( abstractStep.getLocation(), abstractStep.getKeyword(), text, abstractStep.getArgument()); } }
private String stepToString(Step step) { String phrase = step.getKeyword() + step.getText(); if ((step.getArgument() != null) && (step.getArgument().getClass().isAssignableFrom(gherkin.ast.DataTable.class))) { gherkin.ast.DataTable table = (gherkin.ast.DataTable) step.getArgument(); String tableAsString = ""; for (TableRow row : table.getRows()) { tableAsString += "|"; tableAsString += row.getCells().stream() .map(TableCell::getValue) .collect(Collectors.joining(" | ")); tableAsString += "|" + System.lineSeparator(); } phrase = phrase + System.lineSeparator() + tableAsString.trim(); } return phrase; } }
private String stepToString(Step step) { String phrase = step.getKeyword() + step.getText(); if ((step.getArgument() != null) && (step.getArgument().getClass().isAssignableFrom(gherkin.ast.DataTable.class))) { gherkin.ast.DataTable table = (gherkin.ast.DataTable) step.getArgument(); String tableAsString = ""; for (TableRow row : table.getRows()) { tableAsString += "|"; tableAsString += row.getCells().stream() .map(TableCell::getValue) .collect(Collectors.joining(" | ")); tableAsString += "|" + System.lineSeparator(); } phrase = phrase + System.lineSeparator() + tableAsString.trim(); } return phrase; } }
private PickleStep pickleStep(Step step) { return new PickleStep( step.getText(), createPickleArguments(step.getArgument()), singletonList(pickleStepLocation(step)) ); }
/** * 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; }
private void addSteps(List<Step> replacementSteps) { for (Step replacementStep : replacementSteps) { addStep(step.getLocation(), replacementStep.getKeyword(), replacementStep.getText(), replacementStep.getArgument()); } }
private void processStep(Step step, List<StepDefinition> stepDefinitions) { String keyword = step.getKeyword().trim(); String text = step.getText().trim(); Node argument = step.getArgument(); testLog.logStep(keyword, text); for (StepDefinition stepDefinition : stepDefinitions) { if (stepDefinition.matches(text)) { stepDefinition.invoke(text, argument); return; } } throw new StepDefinitionNotFoundException(keyword, text); } }
public static String step(Step step) { return step.getKeyword() + withEscapedParameterFields(step.getText()) + " " + renderedArgument(step.getArgument()); }
List<Step> replaceWith(List<Step> replacementSteps) { List<Map<String, String>> dataTable = FragmentDataTableUtils.getDataTable(step); if (dataTable.isEmpty()) { addSteps(replacementSteps); return replacedSteps; } for (Map<String, String> dataTableRow : dataTable) { for (Step replacementStep : replacementSteps) { String text = FragmentDataTableUtils.applyToText(dataTableRow, replacementStep.getText()); DataTable argument = null; if (replacementStep.getArgument() != null) { argument = FragmentDataTableUtils.applyToArgument(dataTableRow, replacementStep); } addStep(step.getLocation(), replacementStep.getKeyword(), text, argument); } } return replacedSteps; }
String stepText = interpolate(scenarioOutlineStep.getText(), variableCells, valueCells);
public void replaceDataPlaceholders(List<CucumberFeature> cucumberFeatures) throws DataException, IllegalAccessException { for (CucumberFeature cucumberFeature : cucumberFeatures) { featureDataTagValue = "$" + Props.get("data.initial.collection"); GherkinDocument gherkinDocument = cucumberFeature.getGherkinFeature(); Feature feature = gherkinDocument.getFeature(); setFeatureDataTag(parseTags(feature.getTags())); List<ScenarioDefinition> featureChildren = feature.getChildren(); for (ScenarioDefinition scenarioDefinition : featureChildren) { List<Tag> currentScenarioTags = getScenarioTags(scenarioDefinition); setCurrentScenarioTag(parseTags(currentScenarioTags)); List<Step> steps = scenarioDefinition.getSteps(); if (scenarioDefinition instanceof ScenarioOutline) { List<Examples> examples = ((ScenarioOutline) scenarioDefinition).getExamples(); FieldUtils.writeField(scenarioDefinition, "examples", replaceExamplesPlaceholders(examples), true); } for (Step step : steps) { FieldUtils.writeField(step, "argument", replaceArgumentPlaceholders(step.getArgument()), true); FieldUtils.writeField(step, "text", replaceDataPlaceholders(step.getText()), true); } } } }
public void replaceDataPlaceholders(List<CucumberFeature> cucumberFeatures) throws DataException, IllegalAccessException { for (CucumberFeature cucumberFeature : cucumberFeatures) { featureDataTagValue = "$" + Props.get("data.initial.collection"); GherkinDocument gherkinDocument = cucumberFeature.getGherkinFeature(); Feature feature = gherkinDocument.getFeature(); if (feature == null) { continue; } setFeatureDataTag(parseTags(feature.getTags())); List<ScenarioDefinition> featureChildren = feature.getChildren(); for (ScenarioDefinition scenarioDefinition : featureChildren) { List<Tag> currentScenarioTags = getScenarioTags(scenarioDefinition); setCurrentScenarioTag(parseTags(currentScenarioTags)); List<Step> steps = scenarioDefinition.getSteps(); if (scenarioDefinition instanceof ScenarioOutline) { List<Examples> examples = ((ScenarioOutline) scenarioDefinition).getExamples(); FieldUtils.writeField(scenarioDefinition, "examples", replaceExamplesPlaceholders(examples), true); } for (Step step : steps) { FieldUtils.writeField(step, "argument", replaceArgumentPlaceholders(step.getArgument()), true); FieldUtils.writeField(step, "text", replaceDataPlaceholders(step.getText()), true); } } } }