Пример #1
0
 public void Should_filter_events_by_exclude_tag_with_or()
 {
     var eventsInQueue = new Queue<GherkinEvent>();
     eventsInQueue.Enqueue(new FeatureEvent(new Feature("title"), e => { }));
     eventsInQueue.Enqueue(new TagEvent("@tag1", e => { }));
     eventsInQueue.Enqueue(new ScenarioEvent(new Scenario("title", ""), e => { }));
     eventsInQueue.Enqueue(new StepEvent("step", e => { }));
     eventsInQueue.Enqueue(new TagEvent("@tag2", e => { }));
     eventsInQueue.Enqueue(new ScenarioEvent(new Scenario("title", ""), e => { }));
     eventsInQueue.Enqueue(new StepEvent("step", e => { }));
     eventsInQueue.Enqueue(new EofEvent(e => { }));
     var events = GroupEventsByTag.GroupByTag(eventsInQueue);
     var filter = new OrFilter(new[] { "~@tag1" });
     var filteredEvents = filter.Filter(events).ToList();
     Assert.AreEqual(4, filteredEvents.Count);
     Assert.IsFalse(filteredEvents.Any(_ => _.Tags.Any(t => t == "@tag1")));
 }
Пример #2
0
 public void Should_be_able_to_AND_two_filters()
 {
     var eventsInQueue = new Queue<GherkinEvent>();
     eventsInQueue.Enqueue(new FeatureEvent(new Feature("feature title"), e => { }));
     eventsInQueue.Enqueue(new TagEvent("@tag1", e => { }));
     eventsInQueue.Enqueue(new ScenarioEvent(new Scenario("title t1", ""), e => { }));
     eventsInQueue.Enqueue(new StepEvent("step", e => { }));
     eventsInQueue.Enqueue(new StepEvent("step", e => { }));
     eventsInQueue.Enqueue(new TagEvent("@tag1", e => { }));
     eventsInQueue.Enqueue(new TagEvent("@tag2", e => { }));
     eventsInQueue.Enqueue(new ScenarioEvent(new Scenario("title t2", ""), e => { }));
     eventsInQueue.Enqueue(new StepEvent("step", e => { }));
     eventsInQueue.Enqueue(new EofEvent(e => { }));
     var events = GroupEventsByTag.GroupByTag(eventsInQueue);
     var filter1 = new OrFilter(new[] { "@tag1" });
     var filter2 = new OrFilter(new[] { "@tag2" });
     var filter = new AndFilter(filter1, filter2);
     var filteredEvents = filter.Filter(events).ToList();
     Assert.AreEqual(4, filteredEvents.Count);
     var scenarioEvents = filteredEvents.Where(_ => _ is ScenarioEvent).ToList();
     Assert.AreEqual(1, scenarioEvents.Count());
     CollectionAssert.AreEqual(new[] { "@tag1", "@tag2" }, scenarioEvents[0].Tags);
 }
Пример #3
0
 public void Should_or_multiple_tags()
 {
     var eventsInQueue = new Queue<GherkinEvent>();
     eventsInQueue.Enqueue(new FeatureEvent(new Feature("title"), e => { }));
     eventsInQueue.Enqueue(new TagEvent("@tag1", e => { }));
     eventsInQueue.Enqueue(new ScenarioEvent(new Scenario("title", ""), e => { }));
     eventsInQueue.Enqueue(new StepEvent("step", e => { }));
     eventsInQueue.Enqueue(new TagEvent("@tag2", e => { }));
     eventsInQueue.Enqueue(new ScenarioEvent(new Scenario("title", ""), e => { }));
     eventsInQueue.Enqueue(new StepEvent("step", e => { }));
     eventsInQueue.Enqueue(new EofEvent(e => { }));
     var events = GroupEventsByTag.GroupByTag(eventsInQueue);
     var filter = new OrFilter(new[] { "@tag1", "@tag2" });
     var filteredEvents = filter.Filter(events).ToList();
     CollectionAssert.AreEqual(events, filteredEvents);
 }