private void CheckForMissingExamples(Feature feature, List <ParserException> errors) { foreach (var scenarioOutline in feature.FlattenScenarioDefinitions().OfType <ScenarioOutline>()) { if (DoesntHavePopulatedExamples(scenarioOutline)) { var message = $"Scenario Outline '{scenarioOutline.Name}' has no examples defined"; var semanticParserException = new SemanticParserException(message, scenarioOutline.Location); errors.Add(semanticParserException); } } }
private void CheckForMissingExamples(Feature feature, List <ParserException> errors) { foreach (var scenarioDefinition in feature.ScenarioDefinitions()) { var scenarioOutline = scenarioDefinition as ScenarioOutline; if (scenarioOutline != null) { if (DoesntHavePopulatedExamples(scenarioOutline)) { var message = string.Format("Scenario Outline '{0}' has no examples defined", scenarioOutline.Name); var semanticParserException = new SemanticParserException(message, scenarioDefinition.Location); errors.Add(semanticParserException); } } } }
private void CheckForDuplicateExamples(Feature feature, List <ParserException> errors) { foreach (var scenarioOutline in feature.FlattenScenarioDefinitions().OfType <ScenarioOutline>()) { var duplicateExamples = scenarioOutline.Examples .Where(e => !String.IsNullOrWhiteSpace(e.Name)) .Where(e => e.Tags.All(t => t.Name != "ignore")) .GroupBy(e => e.Name, e => e).Where(g => g.Count() > 1); foreach (var duplicateExample in duplicateExamples) { var message = $"Scenario Outline '{scenarioOutline.Name}' already contains an example with name '{duplicateExample.Key}'"; var semanticParserException = new SemanticParserException(message, duplicateExample.ElementAt(1).Location); errors.Add(semanticParserException); } } }