public void InvalidOperationExceptionIsThrownWhenListenerIsNotSubscribed()
        {
            var eventQueue   = new EventQueue();
            var subscribable = new TestSubscribable();

            Action action = () => eventQueue.Unsubscribe(subscribable);

            action.ShouldThrow <InvalidOperationException>();
        }
        public void ThenAnSubscribeEventIsGenerated()
        {
            var eventQueue   = new EventQueue();
            var subscribable = new TestSubscribable();

            eventQueue.Subscribe(subscribable);

            eventQueue
            .Peek()
            .Should()
            .BeOfType <ListenerSubscribedEvent>();
        }
        public void GivenTheSameListenerIsRegisteredTwiceThenAnInvalidOperationExceptionIsThrown()
        {
            var eventQueue   = new EventQueue();
            var subscribable = new TestSubscribable();

            eventQueue.Subscribe(subscribable);

            Action action = () => eventQueue.Subscribe(subscribable);

            action
            .ShouldThrow <InvalidOperationException>();
        }
Example #4
0
        public void ThenSubscribedListenerForEventTypeReceivesEvent()
        {
            var eventQueue   = new EventQueue();
            var subscribable = new TestSubscribable();

            eventQueue.Subscribe(subscribable);

            eventQueue.Enqueue(new TestEvent());

            subscribable
            .ReceivedEvents
            .Should()
            .HaveCount(1);
        }
        public void ThenTheListenerDoesntReceiveNewEvents()
        {
            var eventQueue   = new EventQueue();
            var subscribable = new TestSubscribable();

            eventQueue.Subscribe(subscribable);

            eventQueue.Unsubscribe(subscribable);
            eventQueue.Enqueue(new TestEvent());

            subscribable
            .ReceivedEvents
            .Should()
            .HaveCount(0);
        }