Esempio n. 1
0
 private void HandleScenarioEvent(GherkinEvent e)
 {
     if (e is ScenarioEvent)
     {
         scenarioTags.Clear();
         scenarioTags.AddRange(tagQueue);
         tagQueue.Clear();
     }
 }
Esempio n. 2
0
 private void HandleEofEvent(GherkinEvent e)
 {
     if (e is EofEvent)
     {
         scenarioTags.Clear();
         featureTags.Clear();
         tagQueue.Clear();
     }
 }
Esempio n. 3
0
 private void HandleFeatureEvent(GherkinEvent e)
 {
     if (e is FeatureEvent)
     {
         scenarioTags.Clear();
         featureTags.Clear();
         featureTags.AddRange(tagQueue);
         tagQueue.Clear();
     }
 }
Esempio n. 4
0
 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);
 }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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;
            }
        }
Esempio n. 7
0
 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);
 }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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);
            }
        }
Esempio n. 10
0
 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;
 }
Esempio n. 11
0
 private void AddTagsToEvent(GherkinEvent e)
 {
     e.Tags.AddRange(featureTags);
     e.Tags.AddRange(scenarioTags);
     taggedEvents.Enqueue(e);
 }