Feature getFeature(String path) { if (!pathToAstMap.containsKey(path)) { parseGherkinSource(path); } if (pathToAstMap.containsKey(path)) { return pathToAstMap.get(path).getFeature(); } return null; }
public String getName() { return gherkinDocument.getFeature().getName(); }
@Override public String toString() { return "\"" + cucumberFeature.getGherkinFeature().getFeature().getName() + "\""; } }
private static List<PickleEvent> compilePickles(GherkinDocument gherkinDocument, Resource resource) { if (gherkinDocument.getFeature() == null) { return Collections.emptyList(); } List<PickleEvent> pickleEvents = new ArrayList<>(); for (Pickle pickle : new Compiler().compile(gherkinDocument)) { pickleEvents.add(new PickleEvent(resource.getPath(), pickle)); } return pickleEvents; } }
@Override public String getName() { Feature feature = cucumberFeature.getGherkinFeature().getFeature(); return feature.getKeyword() + ": " + feature.getName(); }
private void parseGherkinSource(String path) { if (!pathToReadEventMap.containsKey(path)) { return; } Parser<GherkinDocument> parser = new Parser<GherkinDocument>(new AstBuilder()); TokenMatcher matcher = new TokenMatcher(); try { GherkinDocument gherkinDocument = parser.parse(pathToReadEventMap.get(path).source, matcher); pathToAstMap.put(path, gherkinDocument); Map<Integer, AstNode> nodeMap = new HashMap<Integer, AstNode>(); AstNode currentParent = new AstNode(gherkinDocument.getFeature(), null); for (ScenarioDefinition child : gherkinDocument.getFeature().getChildren()) { processScenarioDefinition(nodeMap, child, currentParent); } pathToNodeMap.put(path, nodeMap); } catch (ParserException e) { // Ignore exceptions } }
private void createFeatureStepMap(String path) { if (!pathToSourceMap.containsKey(path)) { return; } Parser<GherkinDocument> parser = new Parser<GherkinDocument>(new AstBuilder()); TokenMatcher matcher = new TokenMatcher(); try { GherkinDocument gherkinDocument = parser.parse(pathToSourceMap.get(path), matcher); Map<Integer, StepNode> stepMap = new HashMap<Integer, StepNode>(); StepNode initialPreviousNode = null; for (ScenarioDefinition child : gherkinDocument.getFeature().getChildren()) { StepNode lastStepNode = processScenarioDefinition(stepMap, initialPreviousNode, child); if (child instanceof Background) { initialPreviousNode = lastStepNode; } } pathToStepMap.put(path, new FeatureStepMap(new GherkinDialectProvider(gherkinDocument.getFeature().getLanguage()).getDefaultDialect(), stepMap)); } catch (ParserException e) { // Ignore exceptions } }
public Feature getFeature(final String path) { if (!pathToAstMap.containsKey(path)) { parseGherkinSource(path); } if (pathToAstMap.containsKey(path)) { return pathToAstMap.get(path).getFeature(); } return null; }
public Feature getFeature(final String path) { if (!pathToAstMap.containsKey(path)) { parseGherkinSource(path); } if (pathToAstMap.containsKey(path)) { return pathToAstMap.get(path).getFeature(); } return null; }
private Function<CucumberFeature, List<TestScenarioResult>> featureToScenarios() { return cucumberFeature -> { try { return (cucumberFeature.getGherkinFeature().getFeature() == null) ? Collections.emptyList() : cucumberFeature.getGherkinFeature().getFeature().getChildren() .stream() .filter(child -> asList(ScenarioOutline.class, Scenario.class).contains(child.getClass())) .map(scenarioToResult(cucumberFeature)) .collect(toList()); } catch (Exception e) { throw new IllegalStateException(String.format("Could not extract scenarios from %s", cucumberFeature.getUri()), e); } }; }
private Function<CucumberFeature, List<TestScenarioResult>> featureToScenarios() { return cucumberFeature -> { try { return (cucumberFeature.getGherkinFeature().getFeature() == null) ? Collections.emptyList() : cucumberFeature.getGherkinFeature().getFeature().getChildren() .stream() .filter(child -> asList(ScenarioOutline.class, Scenario.class).contains(child.getClass())) .map(scenarioToResult(cucumberFeature)) .collect(toList()); } catch (Exception e) { throw new IllegalStateException(String.format("Could not extract scenarios from %s", cucumberFeature.getUri()), e); } }; }
private int backgroundStepCountFor(CucumberFeature feature) { ScenarioDefinition scenarioDefinition = feature.getGherkinFeature().getFeature().getChildren().get(0); if (scenarioDefinition instanceof Background) { return scenarioDefinition.getSteps().size(); } else { return 0; } }
@Override public String toString() { return "\"" + cucumberFeature.getGherkinFeature().getFeature().getName() + "\""; } }
private int backgroundStepCountFor(CucumberFeature feature) { ScenarioDefinition scenarioDefinition = feature.getGherkinFeature().getFeature().getChildren().get(0); if (scenarioDefinition instanceof Background) { return scenarioDefinition.getSteps().size(); } else { return 0; } }
static Map<ScenarioDefinition, String> cacheScenarioLanguage(List<CucumberFeature> features) { Map<ScenarioDefinition, String> scenarioLanguageMap = new HashMap<>(); for (CucumberFeature cucumberFeature : features) { GherkinDocument gherkinDocument = cucumberFeature.getGherkinFeature(); Feature feature = gherkinDocument.getFeature(); List<ScenarioDefinition> scenarios = feature.getChildren(); for (ScenarioDefinition scenario : scenarios) { scenarioLanguageMap.put(scenario, feature.getLanguage()); } } return scenarioLanguageMap; } }
private ScenarioDefinition findScenarioDefinitionViaLocation(Location location, GherkinDocument gherkinDocument) { List<ScenarioDefinition> scenarioDefinitions = gherkinDocument.getFeature().getChildren(); for (ScenarioDefinition definition : scenarioDefinitions) { if (isLocationSame(definition.getLocation(), location)) { return definition; } } return null; }
private ScenarioDefinition findScenarioDefinitionViaLocation(Location location, GherkinDocument gherkinDocument) { List<ScenarioDefinition> scenarioDefinitions = gherkinDocument.getFeature().getChildren(); for (ScenarioDefinition definition : scenarioDefinitions) { if (isLocationSame(definition.getLocation(), location)) { return definition; } } return null; }
private Function<ScenarioDefinition, TestScenarioResult> scenarioToResult(CucumberFeature feature) { return scenarioDefinition -> { try { return new TestScenarioResult( feature.getGherkinFeature().getFeature().getName(), scenarioDefinition.getName(), scenarioStepCountFor(backgroundStepCountFor(feature), scenarioDefinition)); } catch (Exception e) { throw new IllegalStateException(String.format("Could not determine step count for scenario '%s'", scenarioDefinition.getDescription()), e); } }; }
private Function<ScenarioDefinition, TestScenarioResult> scenarioToResult(CucumberFeature feature) { return scenarioDefinition -> { try { return new TestScenarioResult( feature.getGherkinFeature().getFeature().getName(), scenarioDefinition.getName(), scenarioStepCountFor(backgroundStepCountFor(feature), scenarioDefinition)); } catch (Exception e) { throw new IllegalStateException(String.format("Could not determine step count for scenario '%s'", scenarioDefinition.getDescription()), e); } }; }
private BigDecimal scenarioWeightFor(CucumberFeature feature, ScenarioDefinition scenarioDefinition) { return statistics.scenarioWeightFor(feature.getGherkinFeature().getFeature().getName(), scenarioDefinition.getName()); }