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>(); }
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); }