public void Given_a_subscription_exists_when_emited_a_message_then_subscriber_gets_called()
 {
     var sut = new ServiceEvents();
     var callbackCalled = false;
     var incommingMessage = FakeMessage.GenerateIncomingEvent(FakeMessage.GenerateRandom());
     sut.IncommingEventSequence.Subscribe(i =>
         {
             Assert.Same(i, incommingMessage);
             callbackCalled = true;
         });
     sut.AddIncommingEvent(incommingMessage);
     Assert.True(callbackCalled);
 }
        public void Given_messages_are_emited_before_subscription_is_made_when_subscripted_then_receives_past_messages_not_older_then_ten()
        {
            var sut = new ServiceEvents();
            List<IncommingEvent> events = new List<IncommingEvent>();
            var elements = (11).Times<IncommingEvent>(new Func<IncommingEvent>(() => FakeMessage.GenerateIncomingEvent(FakeMessage.GenerateRandom())));
            events.AddRange(elements);
            events.ForEach(e => sut.AddIncommingEvent(e));
            sut.IncommingEventSequence.Subscribe(i =>
            {
                Assert.True(events.Contains(i));
                events.Remove(i);
            });

            Assert.Equal(events.Count, 1);
        }