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 PublishAlsoNotifiesCorellationIdSubscriptionTest() { var handler = Substitute.For <IHandle <TestMessage> >(); var pubSub = new TopicBasedPubSub(); var testMessage = new TestMessage(); pubSub.SubscribeByCorellationId(testMessage.CorellationId, handler); pubSub.Publish(testMessage); 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>()); }
public void Start() { _timer = new Timer(_ => { var toSend = _futureMessages.Where(x => x.Delay > DateTime.UtcNow).ToList(); toSend.ForEach(x => { Console.WriteLine("Resending message id " + x.Id); _bus.Publish(x.Message); _futureMessages.Remove(x); }); }, null, TimeSpan.Zero, TimeSpan.FromMilliseconds(500)); }
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 NoSubscriptionsPublishDoesntThrowTest() { var pubSub = new TopicBasedPubSub(); Assert.DoesNotThrow(() => pubSub.Publish(new TestMessage())); }