public void MultipleSubscriptionsPublishTest() { var handler1 = Substitute.For <IHandle <TestMessage> >(); var handler2 = Substitute.For <IHandle <TestMessage> >(); var pubSub = new TopicBasedPubSub(); pubSub.SubscribeByType(handler1); pubSub.SubscribeByType(handler2); pubSub.Publish(new TestMessage()); handler1.Received().Handle(Arg.Any <TestMessage>()); handler2.Received().Handle(Arg.Any <TestMessage>()); }
public void SubscribeWhenPublishingDoesntThrowTest() { var handler1 = Substitute.For <IHandle <TestMessage> >(); var handler2 = Substitute.For <IHandle <TestMessage> >(); var pubSub = new TopicBasedPubSub(); handler1 .When(x => x.Handle(Arg.Any <TestMessage>())) .Do(callInfo => { Assert.DoesNotThrow(() => pubSub.SubscribeByType(handler2)); }); pubSub.SubscribeByType(handler1); pubSub.Publish(new TestMessage()); handler2.DidNotReceive().Handle(Arg.Any <TestMessage>()); }
public void SingleSubscriptionPublishTest() { var handler = Substitute.For <IHandle <TestMessage> >(); var pubSub = new TopicBasedPubSub(); pubSub.SubscribeByType(handler); pubSub.Publish(new TestMessage()); pubSub.Publish(new AnotherTestMessage()); handler.Received().Handle(Arg.Any <TestMessage>()); }
public void UnsubscribeTest() { var handler = Substitute.For <IHandle <TestMessage> >(); var pubSub = new TopicBasedPubSub(); pubSub.SubscribeByType(handler); pubSub.UnsubscribeByType(handler); pubSub.Publish(new TestMessage()); handler.DidNotReceive().Handle(Arg.Any <TestMessage>()); }