private List<String> createCellList(TableRow row) { List<String> cells = new ArrayList<String>(); for (TableCell cell : row.getCells()) { cells.add(cell.getValue()); } return cells; }
private List<TableRow> replaceTableRows(List<TableRow> tableRows) throws DataException { List<TableRow> resultTableRows = new ArrayList<>(); for (TableRow row : tableRows) { List<TableCell> resultCells = new ArrayList<>(); for (TableCell cell : row.getCells()) { TableCell resultCell = new TableCell(cell.getLocation(), replaceDataPlaceholders(cell.getValue())); resultCells.add(resultCell); } resultTableRows.add(new TableRow(row.getLocation(), resultCells)); } return resultTableRows; } }
newCells.add( new PickleCell( pickleLocation(cell.getLocation()), interpolate(cell.getValue(), variableCells, valueCells)
private List<TableCell> getCells(Token token) { List<TableCell> cells = new ArrayList<>(); for (GherkinLineSpan cellItem : token.mathcedItems) { cells.add(new TableCell(getLocation(token, cellItem.column), cellItem.text)); } return cells; }
private List<TableRow> replaceTableRows(List<TableRow> tableRows) throws DataException { List<TableRow> resultTableRows = new ArrayList<>(); for (TableRow row : tableRows) { List<TableCell> resultCells = new ArrayList<>(); for (TableCell cell : row.getCells()) { TableCell resultCell = new TableCell(cell.getLocation(), replaceDataPlaceholders(cell.getValue())); resultCells.add(resultCell); } resultTableRows.add(new TableRow(row.getLocation(), resultCells)); } return resultTableRows; } }
private String interpolate(String name, List<TableCell> variableCells, List<TableCell> valueCells) { int col = 0; for (TableCell variableCell : variableCells) { TableCell valueCell = valueCells.get(col++); String header = variableCell.getValue(); String value = valueCell.getValue(); name = name.replace("<" + header + ">", value); } return name; }
static DataTable applyToArgument(Map<String, String> dataTableAsMap, Step fragmentStep) { DataTable dataTable = (DataTable) fragmentStep.getArgument(); List<TableRow> resultTableRows = new ArrayList<>(); for (TableRow row : dataTable.getRows()) { List<TableCell> resultCells = new ArrayList<>(); for (TableCell cell : row.getCells()) { TableCell resultCell = new TableCell(cell.getLocation(), applyToText(dataTableAsMap, cell.getValue())); resultCells.add(resultCell); } resultTableRows.add(new TableRow(row.getLocation(), resultCells)); } return new DataTable(resultTableRows); } }
private static void addRow(StringBuffer renderedTable, List<TableCell> cells, String statusToken) { renderedTable.append("|"); for(TableCell cell : cells) { renderedTable.append(withEscapedParameterFields(cell.getValue())).append(" |"); } if (statusToken != null) { renderedTable.append(statusToken + " |"); } renderedTable.append(" ").append(System.lineSeparator()); }
public static String cellRow(List<TableCell> cells, Map<Integer,Integer> maxColumnWidths, RowResultIcon exampleRowResultIcons) { StringBuilder headerRow = new StringBuilder("|"); for(int column = 0; column < cells.size(); column ++) { String columnHeading = cells.get(column).getValue(); int columnWidth = maxColumnWidths.get(column) + 1; headerRow.append(StringUtils.rightPad(" " + columnHeading, columnWidth)).append(" |"); } headerRow.append(exampleRowResultIcons.resultToken() + "|"); return headerRow.toString() + lineSeparator(); }
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); } }
/** * Converts a Gherkin example table to a map of columns (keys) and rows (values) * * @param exampleTable a Gherkin {@link Examples} instance. * @return a map where the keys are the column headers and the values are lists of strings. */ Map<String, List<String>> convertGherkinExampleTableToCucableExampleMap( final Examples exampleTable ) { Map<String, List<String>> exampleMap = new LinkedHashMap<>(); List<TableCell> headerCells = exampleTable.getTableHeader().getCells(); for (TableCell headerCell : headerCells) { exampleMap.put("<" + headerCell.getValue() + ">", new ArrayList<>()); } Object[] columnKeys = exampleMap.keySet().toArray(); List<TableRow> tableBody = exampleTable.getTableBody(); for (TableRow tableRow : tableBody) { List<TableCell> cells = tableRow.getCells(); for (int i = 0; i < cells.size(); i++) { String columnKey = (String) columnKeys[i]; List<String> values = exampleMap.get(columnKey); values.add(cells.get(i).getValue()); } } return exampleMap; } }
static List<Map<String, String>> getDataTable(Step step) { List<Map<String, String>> dataTableAsListOfMaps = new ArrayList<>(); Node argument = step.getArgument(); if (!(argument instanceof DataTable)) { return dataTableAsListOfMaps; } DataTable dataTable = (DataTable) step.getArgument(); for (int i = FIRST_ROW_INDEX; i < dataTable.getRows().size(); i++) { Map<String, String> dataTableRow = new HashMap<>(); List<TableRow> rows = dataTable.getRows(); for (int j = 0; j < rows.get(HEADER_INDEX).getCells().size(); j++) { String key = rows.get(HEADER_INDEX).getCells().get(j).getValue(); List<TableCell> cells = dataTable.getRows().get(i).getCells(); String value = cells.get(j).getValue(); dataTableRow.put(key, value); } dataTableAsListOfMaps.add(dataTableRow); } return dataTableAsListOfMaps; }
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 Map<String, String> parametersMap(TableRow header, TableRow row) { List<TableCell> headerCells = header.getCells(); List<TableCell> rowCells = row.getCells(); if (headerCells.size() == rowCells.size()) { Map<String, String> parameters = new LinkedHashMap<>(); for (int i = 0; i < headerCells.size(); i++) { TableCell headerCell = headerCells.get(i); TableCell rowCell = rowCells.get(i); parameters.put(headerCell.getValue(), rowCell.getValue()); } return parameters; } else { throw new InvalidExampleException(header.getLocation().getLine(), header.getLocation().getColumn()); } }
private List<Parameter> getExamplesAsParameters(final ScenarioOutline scenarioOutline) { final Optional<Examples> examplesBlock = scenarioOutline.getExamples().stream() .filter(example -> example.getTableBody().stream() .anyMatch(row -> row.getLocation().getLine() == currentTestCase.getLine()) ).findFirst(); if (examplesBlock.isPresent()) { final TableRow row = examplesBlock.get().getTableBody().stream() .filter(example -> example.getLocation().getLine() == currentTestCase.getLine()) .findFirst().get(); return IntStream.range(0, examplesBlock.get().getTableHeader().getCells().size()).mapToObj(index -> { final String name = examplesBlock.get().getTableHeader().getCells().get(index).getValue(); final String value = row.getCells().get(index).getValue(); return new Parameter().setName(name).setValue(value); }).collect(Collectors.toList()); } else { return Collections.emptyList(); } }
/** * Converts a Gherkin data table to a Cucable data table. * * @param gherkinDataTable a {@link DataTable}. * @return a {@link com.trivago.vo.DataTable}. */ private com.trivago.vo.DataTable convertGherkinDataTableToCucableDataTable( final DataTable gherkinDataTable) { com.trivago.vo.DataTable dataTable = new com.trivago.vo.DataTable(); for (TableRow row : gherkinDataTable.getRows()) { List<TableCell> cells = row.getCells(); List<String> rowValues = new ArrayList<>(); for (TableCell cell : cells) { rowValues.add(cell.getValue()); } dataTable.addRow(rowValues); } return dataTable; }