public void MessageReceiverCallbackGetsCalledMultipleTimesWhenListeningLonger() { var context = new TestBusContext(); var receiver = context.CreateMessageReceiver("receiver", new List <string> { "#" }); var autoResetEvent = new AutoResetEvent(false); var messages = new List <IEventMessage>(); receiver.DeclareQueue(); context.TestQueues["receiver"].Queue.Enqueue(new EventMessage("message", "1")); context.TestQueues["receiver"].Queue.Enqueue(new EventMessage("message", "2")); context.TestQueues["receiver"].Queue.Enqueue(new EventMessage("message", "3")); receiver.StartReceivingMessages((e) => { messages.Add(e); autoResetEvent.Set(); }); autoResetEvent.WaitOne(500); autoResetEvent.WaitOne(500); autoResetEvent.WaitOne(500); Assert.AreEqual(3, messages.Count); Assert.IsTrue(messages.Any(m => m.Message == "1")); Assert.IsTrue(messages.Any(m => m.Message == "2")); Assert.IsTrue(messages.Any(m => m.Message == "3")); }
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); }
public void MessageReceiverReturnsExceptionWhenNoQueueIsDefined() { var context = new TestBusContext(); var receiver = context.CreateMessageReceiver("receiver", new List <string> { "#" }); Assert.ThrowsException <KeyNotFoundException>(() => receiver.StartReceivingMessages(null)); }
public void CreateMessageReceiverReturnsMessageReceiver() { // Arrange var context = new TestBusContext(); // Act var result = context.CreateMessageReceiver("test.queue", new string[0]); // Assert Assert.IsInstanceOfType(result, typeof(TestMessageReceiver)); }
public void MessageReceiverCallingQueueDeclaredTwiceThrowsException() { var context = new TestBusContext(); var receiver = context.CreateMessageReceiver("receiver", new List <string> { "#" }); receiver.DeclareQueue(); Assert.ThrowsException <BusConfigurationException>(() => receiver.DeclareQueue()); }
public void CreateMessageReceiver_ReturnsTestMessageReceiver() { // Arrange TestBusContext context = new TestBusContext(); // Act var receiver = context.CreateMessageReceiver("TestQueue", new List <string> { "test.routing.key" }); // Assert Assert.IsInstanceOfType(receiver, typeof(TestMessageReceiver)); }
public void CreateMessageReceiverReturnsInitializedReceiver(string queueName, string topics) { // Arrange var context = new TestBusContext(); string[] topicList = topics.Split(','); // Act IMessageReceiver receiver = context.CreateMessageReceiver(queueName, topicList); // Assert Assert.AreSame(queueName, receiver.QueueName); Assert.AreSame(topicList, receiver.TopicFilters); }
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); }
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); }
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); }
public void MessageReceiverCallbackGetsCalledWhenMessageIsAddedOnQueue() { var context = new TestBusContext(); var receiver = context.CreateMessageReceiver("receiver", new List <string> { "#" }); var autoResetEvent = new AutoResetEvent(false); IEventMessage message = null; receiver.DeclareQueue(); receiver.StartReceivingMessages((e) => { message = e; autoResetEvent.Set(); }); context.TestQueues["receiver"].Queue.Enqueue(new EventMessage("message", "message sending")); autoResetEvent.WaitOne(); Assert.IsNotNull(message); Assert.AreEqual("message sending", message.Message); }