protected override void RunTest()
            {
                ObserveEventsOnThis();
                var fooEvent  = new FooEvent();
                var barEvent  = new BarEvent();
                var buzzEvent = new BuzzEvent();

                Router.PublishEvent(fooEvent);
                Router.PublishEvent(barEvent);
                Router.PublishEvent(buzzEvent);
                ReceivedEvents.Count.ShouldBe(3);
                ReceivedEvents[0].ShouldBe(fooEvent);
                ReceivedEvents[1].ShouldBe(barEvent);
                ReceivedEvents[2].ShouldBe(buzzEvent);
            }
            protected override void RunTest()
            {
                ObserveEventsOnThis();
                var fooEvent  = new FooEvent();
                var barEvent  = new BarEvent();
                var bazEvent  = new BazEvent();
                var buzzEvent = new BuzzEvent();

                Router.PublishEvent(fooEvent);
                AssertLastReceivedEvent(1, ObservationStage.Preview, fooEvent);

                Router.PublishEvent(barEvent);
                AssertLastReceivedEvent(2, ObservationStage.Normal, barEvent);

                Router.PublishEvent(bazEvent);
                AssertLastReceivedEvent(3, ObservationStage.Normal, bazEvent);

                Router.PublishEvent(buzzEvent);
                AssertLastReceivedEvent(4, ObservationStage.Committed, buzzEvent);
            }
 private void ObserveBuzzEvent(BuzzEvent e)
 {
     ReceivedEvents.Add(e);
 }
 public void CommitBuzz(BuzzEvent e, IEventContext context, TestModel model)
 {
     context.Commit();
 }