private void HandleScenarioEvent(GherkinEvent e) { if (e is ScenarioEvent) { scenarioTags.Clear(); scenarioTags.AddRange(tagQueue); tagQueue.Clear(); } }
private void HandleEofEvent(GherkinEvent e) { if (e is EofEvent) { scenarioTags.Clear(); featureTags.Clear(); tagQueue.Clear(); } }
private void HandleFeatureEvent(GherkinEvent e) { if (e is FeatureEvent) { scenarioTags.Clear(); featureTags.Clear(); featureTags.AddRange(tagQueue); tagQueue.Clear(); } }
public void Empty_filter_should_return_all_events() { var events = new GherkinEvent[] { new FeatureEvent(new Feature("title"), e => { }), new ScenarioEvent(new Scenario("title", ""), e => { }), new StepEvent("step", e => { }), new EofEvent(e => { }) }; var filter = new NoFilter(); var filteredEvents = filter.Filter(events); CollectionAssert.AreEqual(events, filteredEvents); }
public void Empty_filter_should_return_all_events() { var events = new GherkinEvent[] { new FeatureEvent(new Feature("title"), e => { }), new ScenarioEvent(new Scenario("title", ""), e => { }), new StepEvent("step", e => { }), new EofEvent(e => { }) }; var filter = new NoFilter(); var filteredEvents = filter.Filter(events); CollectionAssert.AreEqual(events, filteredEvents); }
private IEnumerable <GherkinEvent> GetEventsWhile(Queue <GherkinEvent> events, Predicate <GherkinEvent> continueIfEventIsNot) { if (events.Any() == false) { yield break; } GherkinEvent nextEvent = events.Peek(); while (events.Any() && !(continueIfEventIsNot(nextEvent))) { yield return(events.Dequeue()); nextEvent = (events.Any()) ? events.Peek() : null; } }
public void No_filter_should_not_remove_any_events() { var tagsToFilter = new List<string[]>(); var filter = TagFilterBuilder.Build(tagsToFilter); var events = new GherkinEvent[] { new FeatureEvent(new Feature("title"), e => { }), new TagEvent("@tag1", e => { }), new ScenarioEvent(new Scenario("title", ""), e => { }), new TagEvent("@tag1", e => { }), new TagEvent("@tag2", e => { }), new ScenarioEvent(new Scenario("title", ""), e => { }), new EofEvent(e => { }) }; var filteredEvents = filter.Filter(events).ToList(); CollectionAssert.AreEqual(events, filteredEvents); }
public void No_filter_should_not_remove_any_events() { var tagsToFilter = new List <string[]>(); var filter = TagFilterBuilder.Build(tagsToFilter); var events = new GherkinEvent[] { new FeatureEvent(new Feature("title"), e => { }), new TagEvent("@tag1", e => { }), new ScenarioEvent(new Scenario("title", ""), e => { }), new TagEvent("@tag1", e => { }), new TagEvent("@tag2", e => { }), new ScenarioEvent(new Scenario("title", ""), e => { }), new EofEvent(e => { }) }; var filteredEvents = filter.Filter(events).ToList(); CollectionAssert.AreEqual(events, filteredEvents); }
private IEnumerable <GherkinEvent> DoEvent(GherkinEvent e, IEnumerable <GherkinEvent> scenarioEvents, Queue <GherkinEvent> eventsToHandle) { if (e is ScenarioEvent) { var es = GetEventsForNextScenario(eventsToHandle); if (scenarioEvents.Contains(e)) { yield return(e); foreach (var ee in es) { yield return(ee); } } } else { yield return(e); } }
private IEnumerable<GherkinEvent> DoEvent(GherkinEvent e, IEnumerable<GherkinEvent> scenarioEvents, Queue<GherkinEvent> eventsToHandle) { if (e is ScenarioEvent) { var es = GetEventsForNextScenario(eventsToHandle); if (scenarioEvents.Contains(e)) { yield return e; foreach (var ee in es) yield return ee; } } else yield return e; }
private void AddTagsToEvent(GherkinEvent e) { e.Tags.AddRange(featureTags); e.Tags.AddRange(scenarioTags); taggedEvents.Enqueue(e); }