use of cucumber.runtime.model.CucumberExamples in project cucumber-jvm by cucumber.
the class ScenarioCounterTest method createCucumberFeaturesWithScenarioOutlines.
private List<CucumberFeature> createCucumberFeaturesWithScenarioOutlines(final int numberOfCucumberFeatures, final int numberOfScenarioOutlines, final int numberOfCucumberExamples, final int numberOfExampleRows) {
final int numberOfExampleRowsIncludingHeaderRow = numberOfExampleRows + 1;
final List<CucumberFeature> cucumberFeatures = new ArrayList<CucumberFeature>();
for (int f = 0; f < numberOfCucumberFeatures; f++) {
final CucumberFeature cucumberFeature = mock(CucumberFeature.class);
cucumberFeatures.add(cucumberFeature);
// set up 2 scenarios outlines
final List<CucumberTagStatement> cucumberTagStatements = new ArrayList<CucumberTagStatement>();
for (int o = 0; o < numberOfScenarioOutlines; o++) {
cucumberTagStatements.add(mock(CucumberScenarioOutline.class));
}
when(cucumberFeature.getFeatureElements()).thenReturn(cucumberTagStatements);
// with 2 examples for each scenario outline
for (final CucumberTagStatement cucumberTagStatement : cucumberTagStatements) {
final CucumberScenarioOutline cucumberScenarioOutline = (CucumberScenarioOutline) cucumberTagStatement;
final List<CucumberExamples> cucumberExamplesList = createMockList(CucumberExamples.class, numberOfCucumberExamples);
when(cucumberScenarioOutline.getCucumberExamplesList()).thenReturn(cucumberExamplesList);
// each example should have two rows (excluding the header row)
for (final CucumberExamples cucumberExamples : cucumberExamplesList) {
final Examples examples = mock(Examples.class);
when(examples.getRows()).thenReturn(createMockList(ExamplesTableRow.class, numberOfExampleRowsIncludingHeaderRow));
when(cucumberExamples.getExamples()).thenReturn(examples);
}
}
}
return cucumberFeatures;
}
Aggregations