Пример #1
0
            public void WillReturnTrueIfQueueCreated()
            {
                TestMessageQueue.Delete();

                using (var queue = TestMessageQueue.Create())
                    Assert.True(queue.EnsureQueueExists());
            }
Пример #2
0
 public WhenReceivingMessages()
 {
     messageProcessor = new FakeMessageProcessor <String>();
     testQueue        = TestMessageQueue.Create();
     testQueue.EnsureQueueExists();
     testQueue.Purge();
 }
 public WhenSendingMessages()
 {
     serializer    = new BinarySerializer();
     messageSender = new MessageSender <String>(TestMessageQueue.Path, serializer);
     testQueue     = TestMessageQueue.Create();
     testQueue.EnsureQueueExists();
     testQueue.Purge();
 }
Пример #4
0
 public WhenInitializingMessageReceiver()
 {
     messageProcessor = new FakeMessageProcessor <String>();
     processingQueue  = TestMessageQueue.Create("processing");
     testQueue        = TestMessageQueue.Create();
     testQueue.EnsureQueueExists();
     testQueue.Purge();
 }
Пример #5
0
 public void WillReturnTrueIfQueueAlreadyExists()
 {
     using (var queue = TestMessageQueue.Create())
     {
         queue.EnsureQueueExists();
         Assert.True(queue.EnsureQueueExists());
     }
 }
Пример #6
0
            public void WillMoveMessageToPoisonQueueIfUnableToProcessMessage()
            {
                var message = testQueue.SendMessage("Test Message");

                using (new MessageReceiver <String>(TestMessageQueue.Path, new BinarySerializer(), messageProcessor))
                {
                    messageProcessor.WaitForMessage();
                    messageProcessor.ThrowException(new InvalidOperationException());
                }

                using (var poisonQueue = TestMessageQueue.Create("poison"))
                    Assert.NotNull(poisonQueue.PeekById(message.Id));
            }
Пример #7
0
            public void WillMoveMessagesToIntermediateProcessingQueue()
            {
                var message = testQueue.SendMessage("Test Message");

                using (new MessageReceiver <String>(TestMessageQueue.Path, new BinarySerializer(), messageProcessor))
                    using (var processingQueue = TestMessageQueue.Create("processing"))
                    {
                        messageProcessor.WaitForMessage();

                        Assert.NotNull(processingQueue.PeekById(message.Id));

                        messageProcessor.ProcessNextMessage();
                    }
            }
Пример #8
0
            public void WillMoveMessagesFromMainQueueToSubQueue()
            {
                using (var mainQueue = TestMessageQueue.Create())
                    using (var subQueue = TestMessageQueue.Create("subqueue"))
                    {
                        var message = new System.Messaging.Message("Message")
                        {
                            Recoverable = true
                        };

                        mainQueue.Send(message);
                        mainQueue.Move(mainQueue.PeekById(message.Id), subQueue);

                        Assert.NotNull(subQueue.ReceiveById(message.Id));
                    }
            }
Пример #9
0
            public void WillMoveMessageToPoisonQueueIfUnableToDeserializeMessage()
            {
                var message = new System.Messaging.Message("Invalid Message")
                {
                    Recoverable = true
                };

                testQueue.Send(message);

                using (new MessageReceiver <String>(TestMessageQueue.Path, new BinarySerializer(), messageProcessor))
                {
                    testQueue.SendMessage("Valid Message");
                    messageProcessor.ProcessMessages(count: 1);
                }

                using (var poisonQueue = TestMessageQueue.Create("poison"))
                    Assert.NotNull(poisonQueue.PeekById(message.Id));
            }
Пример #10
0
            public void WillMoveMessagesBetweenSubQueues()
            {
                using (var mainQueue = TestMessageQueue.Create())
                    using (var subQueue1 = TestMessageQueue.Create("subqueue1"))
                        using (var subQueue2 = TestMessageQueue.Create("subqueue2"))
                        {
                            var message = new System.Messaging.Message("Message")
                            {
                                Recoverable = true
                            };

                            mainQueue.Send(message);
                            mainQueue.Move(mainQueue.PeekById(message.Id), subQueue1);
                            subQueue1.Move(subQueue1.PeekById(message.Id), subQueue2);

                            Assert.NotNull(subQueue2.ReceiveById(message.Id));
                        }
            }
Пример #11
0
 public WhenDisposing()
 {
     TestMessageQueue.Create();
 }
Пример #12
0
 public WhenMovingMessages()
 {
     testQueue = TestMessageQueue.Create();
     testQueue.EnsureQueueExists();
     testQueue.Purge();
 }