Search in sources :

Example 1 with Node

use of gherkin.ast.Node in project page-factory-2 by sbtqa.

the class FragmentDataTableUtils method getDataTable.

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;
}
Also used : DataTable(gherkin.ast.DataTable) HashMap(java.util.HashMap) Node(gherkin.ast.Node) ArrayList(java.util.ArrayList) TableCell(gherkin.ast.TableCell) TableRow(gherkin.ast.TableRow) Map(java.util.Map) HashMap(java.util.HashMap)

Example 2 with Node

use of gherkin.ast.Node 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.rta.vo.Step} list.
 */
List<com.trivago.rta.vo.Step> convertGherkinStepsToCucableSteps(final List<Step> gherkinSteps) {
    List<com.trivago.rta.vo.Step> steps = new ArrayList<>();
    for (Step gherkinStep : gherkinSteps) {
        com.trivago.rta.vo.Step step;
        com.trivago.rta.vo.DataTable dataTable = null;
        String docString = null;
        Node argument = gherkinStep.getArgument();
        if (argument instanceof DataTable) {
            dataTable = convertGherkinDataTableToCucumberDataTable((DataTable) argument);
        } else if (argument instanceof DocString) {
            docString = ((DocString) argument).getContent();
        }
        String keywordAndName = gherkinStep.getKeyword().concat(gherkinStep.getText());
        step = new com.trivago.rta.vo.Step(keywordAndName, dataTable, docString);
        steps.add(step);
    }
    return steps;
}
Also used : DataTable(gherkin.ast.DataTable) Node(gherkin.ast.Node) ArrayList(java.util.ArrayList) Step(gherkin.ast.Step) DocString(gherkin.ast.DocString) DocString(gherkin.ast.DocString)

Example 3 with Node

use of gherkin.ast.Node 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;
}
Also used : DataTable(gherkin.ast.DataTable) Node(gherkin.ast.Node) ArrayList(java.util.ArrayList) DocString(gherkin.ast.DocString) Step(gherkin.ast.Step) DocString(gherkin.ast.DocString)

Aggregations

DataTable (gherkin.ast.DataTable)3 Node (gherkin.ast.Node)3 ArrayList (java.util.ArrayList)3 DocString (gherkin.ast.DocString)2 Step (gherkin.ast.Step)2 TableCell (gherkin.ast.TableCell)1 TableRow (gherkin.ast.TableRow)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1