示例#1
0
        public void Publish_Topic_BothTopicAndTopiclessInvoked()
        {
            // Arrange
            var media      = new TestMessageMedia();
            var publisher  = new TestMessagePublisher(media);
            var subscriber = new TestMessageSubscriber(media, new DemoFactory());

            subscriber.Subscribe(typeof(AllHandler));
            subscriber.Subscribe(typeof(SummerHandler), "summer");
            subscriber.Subscribe(typeof(WinterHandler), "winter");

            publisher.Start();
            subscriber.Start();

            // Act
            publisher.Publish(new DemoMessage("No topic"));
            publisher.Publish(new DemoMessage("Topic is Summer"), "summer");
            publisher.Publish(new DemoMessage("Topic is Winter"), "winter");

            // Assert
            var log = DemoLog.Instance.StringBuilder.ToString();

            Assert.That(
                log,
                Is.EqualTo(@"[TauCode.Mq.Testing.Tests.Handlers.AllHandler]: No topic
[TauCode.Mq.Testing.Tests.Handlers.AllHandler]: Topic is Summer
[TauCode.Mq.Testing.Tests.Handlers.SummerHandler]: Topic is Summer
[TauCode.Mq.Testing.Tests.Handlers.AllHandler]: Topic is Winter
[TauCode.Mq.Testing.Tests.Handlers.WinterHandler]: Topic is Winter
"));

            publisher.Dispose();
            subscriber.Dispose();
        }
 protected override void When()
 {
     // create multiple publishers
     _pub1 = new TestMessagePublisher(Bus);
     _pub2 = new TestMessagePublisher(Bus);
     _pub3 = new TestMessagePublisher(Bus);
     _pub4 = new TestMessagePublisher(Bus);
 }