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>());
        }
Exemplo n.º 4
0
 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()));
        }