Example #1
0
        public void ResumingEventListenerReActivatesDeliveryInQueue(string queueName)
        {
            // Arrange
            TestBusContext   context  = new TestBusContext();
            IMessageSender   sender   = context.CreateMessageSender();
            IMessageReceiver receiver = context.CreateMessageReceiver(queueName, new [] { "TestTopic" });

            EventMessage message = new EventMessage {
                Topic = "TestTopic"
            };

            bool callbackCalled = false;

            receiver.StartReceivingMessages();
            receiver.StartHandlingMessages(e => callbackCalled = true);

            receiver.Pause();
            // Act
            sender.SendMessage(message);

            Thread.Sleep(WaitTime);

            receiver.Resume();

            Thread.Sleep(WaitTime);

            // Assert
            Assert.IsTrue(callbackCalled);
        }
Example #2
0
        public void CreateMessageSender_ReturnsTestMessageSender()
        {
            // Arrange
            TestBusContext context = new TestBusContext();

            // Act
            var sender = context.CreateMessageSender();

            // Assert
            Assert.IsInstanceOfType(sender, typeof(TestMessageSender));
        }
Example #3
0
        public void CreateMessageSenderReturnsMessageSender()
        {
            // Arrange
            var context = new TestBusContext();

            // Act
            var result = context.CreateMessageSender();

            // Assert
            Assert.IsInstanceOfType(result, typeof(TestMessageSender));
        }
Example #4
0
        public void MultipleMessagesAddToQueue()
        {
            var context = new TestBusContext();

            var sender = context.CreateMessageSender();

            context.DeclareQueue("receiver1", new List <string> {
                "receiver.info"
            });
            var message = new EventMessage("receiver.info", "receiver");

            sender.SendMessage(message);
            sender.SendMessage(message);
            sender.SendMessage(message);

            Assert.AreEqual(3, context.TestQueues["receiver1"].Queue.Count);
        }
Example #5
0
        public void SendMessageWithCorrectTopicAddsToQueue()
        {
            var context = new TestBusContext();

            var sender = context.CreateMessageSender();

            context.DeclareQueue("receiver1", new List <string> {
                "receiver.info"
            });
            context.DeclareQueue("receiver2", new List <string> {
                "receiver.*.info"
            });

            var message = new EventMessage("receiver.info", "receiver");

            sender.SendMessage(message);

            Assert.AreEqual(1, context.TestQueues["receiver1"].Queue.Count);
            Assert.AreEqual(0, context.TestQueues["receiver2"].Queue.Count);
        }
Example #6
0
        public void ReceiverCanMessageWithMultipleTopics(string topics, string chosenTopic)
        {
            // Arrange
            var context  = new TestBusContext();
            var sender   = context.CreateMessageSender();
            var receiver = context.CreateMessageReceiver("testQueue", topics.Split(','));

            var message = new EventMessage {
                Topic = chosenTopic
            };

            var callbackCalled = false;

            receiver.StartReceivingMessages();
            receiver.StartHandlingMessages(e => callbackCalled = true);

            // Act
            sender.SendMessage(message);
            Thread.Sleep(WaitTime);

            // Assert
            Assert.IsTrue(callbackCalled);
        }
Example #7
0
        public void SendingMessageWithTopicsWorks(string topicName)
        {
            // Arrange
            var context  = new TestBusContext();
            var sender   = context.CreateMessageSender();
            var receiver = context.CreateMessageReceiver("testQueue", new [] { topicName });

            var message = new EventMessage {
                Topic = topicName
            };

            var callbackCalled = false;

            receiver.StartReceivingMessages();
            receiver.StartHandlingMessages(e => callbackCalled = true);

            // Act
            sender.SendMessage(message);
            Thread.Sleep(WaitTime);

            // Assert
            Assert.IsTrue(callbackCalled);
        }
Example #8
0
        public void SendingMessageWithTopicsWorkWithWildcards(string topicPattern, string topicName, bool shouldHaveBeenCalled)
        {
            // Arrange
            var context  = new TestBusContext();
            var sender   = context.CreateMessageSender();
            var receiver = context.CreateMessageReceiver("testQueue", new [] { topicPattern });

            var message = new EventMessage {
                Topic = topicName
            };

            var callbackCalled = false;

            receiver.StartReceivingMessages();
            receiver.StartHandlingMessages(e => callbackCalled = true);

            // Act
            sender.SendMessage(message);
            Thread.Sleep(WaitTime);

            // Assert
            Assert.AreEqual(shouldHaveBeenCalled, callbackCalled);
        }