コード例 #1
0
            public void WillReturnTrueIfQueueCreated()
            {
                TestMessageQueue.Delete();

                using (var queue = TestMessageQueue.Create())
                    Assert.True(queue.EnsureQueueExists());
            }
コード例 #2
0
            public void WillReturnTrueIfQueueAlreadyExists()
            {
                TestMessageQueue.Delete();

                MessageQueue.InitializeMessageQueue(TestMessageQueue.Path + ";subqueue");
                Assert.True(MessageQueue.InitializeMessageQueue(TestMessageQueue.Path));
            }
コード例 #3
0
 public WhenReceivingMessages()
 {
     messageProcessor = new FakeMessageProcessor <String>();
     testQueue        = TestMessageQueue.Create();
     testQueue.EnsureQueueExists();
     testQueue.Purge();
 }
コード例 #4
0
 public WhenSendingMessages()
 {
     serializer    = new BinarySerializer();
     messageSender = new MessageSender <String>(TestMessageQueue.Path, serializer);
     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 WhenInitializingMessageReceiver()
 {
     messageProcessor = new FakeMessageProcessor <String>();
     processingQueue  = TestMessageQueue.Create("processing");
     testQueue        = TestMessageQueue.Create();
     testQueue.EnsureQueueExists();
     testQueue.Purge();
 }
コード例 #7
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));
            }
コード例 #8
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();
                    }
            }
コード例 #9
0
            public async Task <IMessage> Add(string endpointId, IMessage message, uint _)
            {
                TestMessageQueue queue  = this.GetQueue(endpointId);
                long             offset = await queue.Add(message);

                return(new Message(
                           message.MessageSource,
                           message.Body,
                           message.Properties,
                           message.SystemProperties,
                           offset,
                           message.EnqueuedTime,
                           message.DequeuedTime));
            }
コード例 #10
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));
                    }
            }
コード例 #11
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));
                        }
            }
コード例 #12
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));
            }
コード例 #13
0
 public void Dispose()
 {
     TestMessageQueue.Delete();
 }
コード例 #14
0
            public Task <long> Add(string endpointId, IMessage message)
            {
                TestMessageQueue queue = this.GetQueue(endpointId);

                return(queue.Add(message));
            }
コード例 #15
0
 public void Dispose()
 {
     TestMessageQueue.Purge();
 }
コード例 #16
0
            public void WillReturnTrueIfQueueCreated()
            {
                TestMessageQueue.Delete();

                Assert.True(MessageQueue.InitializeMessageQueue(TestMessageQueue.Path));
            }
コード例 #17
0
 public WhenMovingMessages()
 {
     testQueue = TestMessageQueue.Create();
     testQueue.EnsureQueueExists();
     testQueue.Purge();
 }
コード例 #18
0
 public WhenDisposing()
 {
     TestMessageQueue.Create();
 }