private Map<String, Object> createExamples(Examples examples) { Map<String, Object> examplesMap = new HashMap<String, Object>(); examplesMap.put("name", examples.getName()); examplesMap.put("keyword", examples.getKeyword()); examplesMap.put("description", examples.getDescription() != null ? examples.getDescription() : ""); List<Map<String, Object>> rowList = new ArrayList<Map<String, Object>>(); rowList.add(createRowMap(examples.getTableHeader())); for (TableRow row : examples.getTableBody()) { rowList.add(createRowMap(row)); } examplesMap.put("rows", rowList); if (!examples.getTags().isEmpty()) { examplesMap.put("tags", createTagList(examples.getTags())); } return examplesMap; }
private void printExamples(Examples examples) { out.println(); printTags(examples.getTags(), EXAMPLES_INDENT); out.println(EXAMPLES_INDENT + examples.getKeyword() + ": " + examples.getName()); printDescription(examples.getDescription()); }
private void processScenarioOutlineExamples(Map<Integer, AstNode> nodeMap, ScenarioOutline scenarioOutline, AstNode childNode) { for (Examples examples : scenarioOutline.getExamples()) { AstNode examplesNode = new AstNode(examples, childNode); TableRow headerRow = examples.getTableHeader(); AstNode headerNode = new AstNode(headerRow, examplesNode); nodeMap.put(headerRow.getLocation().getLine(), headerNode); for (int i = 0; i < examples.getTableBody().size(); ++i) { TableRow examplesRow = examples.getTableBody().get(i); Node rowNode = new ExamplesRowWrapperNode(examplesRow, i); AstNode expandedScenarioNode = new AstNode(rowNode, examplesNode); nodeMap.put(examplesRow.getLocation().getLine(), expandedScenarioNode); } } }
private List<Examples> replaceExamplesPlaceholders(List<Examples> examples) throws DataException { List<Examples> resultExamples = new ArrayList<>(); for (Examples example : examples) { Examples resultExample = new Examples( example.getLocation(), example.getTags(), example.getKeyword(), example.getName(), example.getDescription(), example.getTableHeader(), replaceTableRows(example.getTableBody())); resultExamples.add(resultExample); } return resultExamples; }
private int scenarioCountFor(ScenarioDefinition scenarioDefinition) { if (scenarioDefinition instanceof ScenarioOutline) { return ((ScenarioOutline) scenarioDefinition).getExamples().stream().map(examples -> examples.getTableBody().size()).mapToInt(Integer::intValue).sum(); } else { return 1; } }
if (examples.getTableHeader() == null) continue; List<TableCell> variableCells = examples.getTableHeader().getCells(); for (final TableRow values : examples.getTableBody()) { List<TableCell> valueCells = values.getCells(); tags.addAll(featureTags); tags.addAll(scenarioOutline.getTags()); tags.addAll(examples.getTags());
private List<Tag> getExampleAllTags(Examples examples, List<Tag> scenarioOutlineTags, List<Tag> currentFeatureTags) { List<Tag> exampleTags = examples.getTags(); List<Tag> allTags = new ArrayList<>(); if (exampleTags != null) allTags.addAll(exampleTags); if (scenarioOutlineTags != null) allTags.addAll(scenarioOutlineTags); if (currentFeatureTags != null) allTags.addAll(currentFeatureTags); return allTags; }
static String calculateId(AstNode astNode) { Node node = astNode.node; if (node instanceof ScenarioDefinition) { return calculateId(astNode.parent) + ";" + convertToId(((ScenarioDefinition) node).getName()); } if (node instanceof ExamplesRowWrapperNode) { return calculateId(astNode.parent) + ";" + Integer.toString(((ExamplesRowWrapperNode) node).bodyRowIndex + 2); } if (node instanceof TableRow) { return calculateId(astNode.parent) + ";" + Integer.toString(1); } if (node instanceof Examples) { return calculateId(astNode.parent) + ";" + convertToId(((Examples) node).getName()); } if (node instanceof Feature) { return convertToId(((Feature) node).getName()); } return ""; }
private static Map<Integer, Integer> maxColumnWidthForColumnsIn(Examples exampleTable) { Map<Integer, Integer> maxColumnWidth = new HashMap<>(); int columnCount = exampleTable.getTableHeader().getCells().size(); for(int column = 0; column < columnCount; column++) { maxColumnWidth.put(column, maxColumnWidthFor(exampleTable, column)); } return maxColumnWidth; }
public static String descriptionFor(Examples exampleTable) { return emptyStringOrValueOf(exampleTable.getDescription()); }
TableRow tableHeader = rows != null && !rows.isEmpty() ? rows.get(0) : null; List<TableRow> tableBody = rows != null && !rows.isEmpty() ? rows.subList(1, rows.size()) : null; return new Examples(getLocation(examplesLine, 0), tags, examplesLine.matchedKeyword, examplesLine.matchedText, description, tableHeader, tableBody);
private List<Examples> replaceExamplesPlaceholders(List<Examples> examples) throws DataException { List<Examples> resultExamples = new ArrayList<>(); for (Examples example : examples) { Examples resultExample = new Examples( example.getLocation(), example.getTags(), example.getKeyword(), example.getName(), example.getDescription(), example.getTableHeader(), replaceTableRows(example.getTableBody())); resultExamples.add(resultExample); } return resultExamples; }
private static Integer maxColumnWidthFor(Examples exampleTable, int column) { int headerWidth = exampleTable.getTableHeader().getCells().get(column).getValue().length(); int maxCellWidth = exampleTable.getTableBody() .stream() .mapToInt(row -> row.getCells().get(column).getValue().length()) .max() .orElse(0); return Math.max(headerWidth, maxCellWidth); } }
private int scenarioCountFor(ScenarioDefinition scenarioDefinition) { if (scenarioDefinition instanceof ScenarioOutline) { return ((ScenarioOutline) scenarioDefinition).getExamples().stream().map(examples -> examples.getTableBody().size()).mapToInt(Integer::intValue).sum(); } else { return 1; } }
private List<Tag> getExampleAllTags(Examples examples, List<Tag> scenarioOutlineTags, List<Tag> currentFeatureTags) { List<Tag> exampleTags = examples.getTags(); List<Tag> allTags = new ArrayList<>(); if (exampleTags != null) allTags.addAll(exampleTags); if (scenarioOutlineTags != null) allTags.addAll(scenarioOutlineTags); if (currentFeatureTags != null) allTags.addAll(currentFeatureTags); return allTags; }
private boolean scenarioContainsExampleTableWithName(ScenarioDefinition scenarioDefinition, String exampleTableName) { if (!(scenarioDefinition instanceof ScenarioOutline)) { return false; } return ((ScenarioOutline) scenarioDefinition).getExamples().stream() .anyMatch( examplesTable -> examplesTable.getName().equalsIgnoreCase(exampleTableName.trim()) ); } }
private static String renderedExamples(Examples examples) { StringBuffer renderedTable = new StringBuffer(); renderedTable.append(examples.getKeyword()).append(": "); if (examples.getName() != null) { renderedTable.append(examples.getName()); } renderedTable.append(" ").append(System.lineSeparator()); if (examples.getDescription() != null) { renderedTable.append(examples.getDescription()).append(" ").append(System.lineSeparator()); } renderedTable.append(System.lineSeparator()); addRow(renderedTable, examples.getTableHeader().getCells(), null); addSeparatorCells(renderedTable, examples.getTableHeader().getCells().size()); for(TableRow row : examples.getTableBody()) { addRow(renderedTable, row.getCells(),null); } return renderedTable.toString(); }
private List<Parameter> getExamplesAsParameters(final ScenarioOutline scenarioOutline) { final Examples examples = scenarioOutline.getExamples().get(0); final TableRow row = examples.getTableBody().stream() .filter(example -> example.getLocation().getLine() == currentTestCase.getLine()) .findFirst().get(); return IntStream.range(0, examples.getTableHeader().getCells().size()).mapToObj(index -> { final String name = examples.getTableHeader().getCells().get(index).getValue(); final String value = row.getCells().get(index).getValue(); return new Parameter().setName(name).setValue(value); }).collect(Collectors.toList()); }
private BigDecimal scenarioStepCountFor(int backgroundStepCount, ScenarioDefinition scenarioDefinition) { final int stepCount; if (scenarioDefinition instanceof ScenarioOutline) { ScenarioOutline outline = (ScenarioOutline) scenarioDefinition; Integer exampleCount = outline.getExamples().stream().map(examples -> examples.getTableBody().size()).mapToInt(Integer::intValue).sum(); stepCount = exampleCount * (backgroundStepCount + outline.getSteps().size()); } else { stepCount = backgroundStepCount + scenarioDefinition.getSteps().size(); } return BigDecimal.valueOf(stepCount); }
singleScenario.setScenarioTags(scenarioTags); singleScenario.setExampleTags( gherkinToCucableConverter.convertGherkinTagsToCucableTags(exampleTable.getTags()) ); outlineScenarios.add(singleScenario);