コード例 #1
0
        public async Task AMessageIsForwardedToMoreQueuesWithMatchingTopicFilters()
        {
            var target = new MessageBroker();

            target.QueueDeclare("FirstQueue", new List <string>()
            {
                "My.*", "MVM.PolisService"
            });
            EventMessage receivedFromFirstQueue = null;

            target.BasicComsume("FirstQueue", m => { receivedFromFirstQueue = m; });

            target.QueueDeclare("SecondQueue", new List <string>()
            {
                "MVM.OtherService", "*.SomeTopic"
            });
            EventMessage receivedFromSecondQueue = null;

            target.BasicComsume("SecondQueue", m => { receivedFromSecondQueue = m; });

            var message = new EventMessage
            {
                Topic         = "My.SomeTopic",
                CorrelationId = Guid.NewGuid(), Timestamp = DateTime.Now.Ticks, EventType = "My.SomethingHappened", Body = Encoding.Unicode.GetBytes("{'Number':5}"),
            };

            await target.BasicPublishAsync(message);

            Assert.IsNotNull(receivedFromFirstQueue);
            Assert.AreEqual("My.SomeTopic", receivedFromFirstQueue.Topic);
            Assert.IsNotNull(receivedFromSecondQueue);
            Assert.AreEqual("My.SomeTopic", receivedFromSecondQueue.Topic);
        }
コード例 #2
0
        public void BasicConsumeSetsConsumer()
        {
            var target = new MessageBroker();

            target.QueueDeclare(queueName, topicFilters);

            EventMessageReceivedCallback callback = m => { };

            target.BasicComsume(queueName, callback);

            Assert.IsTrue(target.GetNamedMessageQueue(queueName).HasConsumer);
        }
コード例 #3
0
        public void WhenQueueNotDeclared_BasicConsumeThrowsBusConfigurationException()
        {
            var target = new MessageBroker();

            Action act = () =>
            {
                target.BasicComsume(queueName, m => { });
            };

            var ex = Assert.ThrowsException <BusConfigurationException>(act);

            Assert.AreEqual("Queue 'My.Name' has not been declared.", ex.Message);
        }
コード例 #4
0
        public async Task AMessageIsForwardedToAQueueWithMatchingTopicFilter()
        {
            var target = new MessageBroker();

            target.QueueDeclare(queueName, topicFilters);
            EventMessage receivedMessage = null;

            target.BasicComsume(queueName, m => { receivedMessage = m; });

            var message = new EventMessage
            {
                Topic         = "My.SomeTopic",
                CorrelationId = Guid.NewGuid(), Timestamp = DateTime.Now.Ticks, EventType = "My.SomethingHappened", Body = Encoding.Unicode.GetBytes("{'Number':5}"),
            };
            await target.BasicPublishAsync(message);

            Assert.IsNotNull(receivedMessage);
            Assert.AreEqual("My.SomeTopic", receivedMessage.Topic);
        }