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<String> getHeadersFrom(TableRow headerRow) { return headerRow.getCells().stream().map(TableCell::getValue).collect(Collectors.toList()); }
private List<String> getHeadersFrom(TableRow headerRow) { return headerRow.getCells().stream().map(TableCell::getValue).collect(Collectors.toList()); }
private List<Map<String, String>> getValuesFrom(List<TableRow> examplesTableRows, List<String> headers) { List<Map<String, String>> rows = new ArrayList<>(); for (int row = 0; row < examplesTableRows.size(); row++) { Map<String, String> rowValues = new HashMap<>(); int column = 0; List<String> cells = examplesTableRows.get(row).getCells().stream().map(TableCell::getValue).collect(Collectors.toList()); for (String cellValue : cells) { String columnName = headers.get(column++); rowValues.put(columnName, cellValue); } rows.add(rowValues); } return rows; }
private List<Map<String, String>> getValuesFrom(List<TableRow> examplesTableRows, List<String> headers) { List<Map<String, String>> rows = new ArrayList<>(); for (int row = 0; row < examplesTableRows.size(); row++) { Map<String, String> rowValues = new HashMap<>(); int column = 0; List<String> cells = examplesTableRows.get(row).getCells().stream().map(TableCell::getValue).collect(Collectors.toList()); for (String cellValue : cells) { String columnName = headers.get(column++); rowValues.put(columnName, cellValue); } rows.add(rowValues); } return rows; }
private void ensureCellCount(List<TableRow> rows) { if (rows.isEmpty()) return; int cellCount = rows.get(0).getCells().size(); for (TableRow row : rows) { if (row.getCells().size() != cellCount) { throw new ParserException.AstBuilderException("inconsistent cell count within the table", row.getLocation()); } } }
private void addRow(Map<Integer, Map<String, String>> exampleRows, List<String> headers, TableRow currentTableRow) { Map<String, String> row = new LinkedHashMap<>(); for (int j = 0; j < headers.size(); j++) { List<String> cells = currentTableRow.getCells().stream().map(TableCell::getValue).collect(Collectors.toList()); row.put(headers.get(j), cells.get(j)); } exampleRows().put(currentTableRow.getLocation().getLine(), row); }
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 static String renderedDataTable(DataTable dataTable) { StringBuffer renderedTable = new StringBuffer(); renderedTable.append(" ").append(System.lineSeparator()); TableRow header = dataTable.getRows().get(0); addRow(renderedTable, header.getCells()); addSeparatorCells(renderedTable, header.getCells().size()); for(int row = 1; row < dataTable.getRows().size(); row++) { addRow(renderedTable, dataTable.getRows().get(row).getCells()); } return renderedTable.toString(); }
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; }
private void addRow(Map<Integer, Map<String, String>> exampleRows, List<String> headers, TableRow currentTableRow) { Map<String, String> row = new LinkedHashMap<>(); for (int j = 0; j < headers.size(); j++) { List<String> cells = currentTableRow.getCells().stream().map(TableCell::getValue).collect(Collectors.toList()); row.put(headers.get(j), cells.get(j)); } exampleRows().put(currentTableRow.getLocation().getLine(), row); }
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()); }
public static String renderedTable(Examples exampleTable, ExampleRowResultIcon exampleRowIcon) { final Map<Integer,Integer> maxColumnWidths = maxColumnWidthForColumnsIn(exampleTable); String headings = cellRow(exampleTable.getTableHeader().getCells(), maxColumnWidths, exampleRowIcon.noIcon()) + headerSeparator(maxColumnWidths); String body = exampleTable.getTableBody().stream() .map(row -> cellRow(row.getCells(), maxColumnWidths, exampleRowIcon)) .collect(Collectors.joining()); return headings + body; }
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 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 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 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 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 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; } }
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); } }