public void WillIgnorePosionMessageExceptions()
            {
                var processor = new FakeMessageProcessor <Object>();
                var bus       = new OptimisticMessageSender <Object>(processor);
                var ex        = new InvalidOperationException();

                bus.Send(new Message <Object>(Guid.NewGuid(), HeaderCollection.Empty, new Object()));
                processor.WaitForMessage();
                processor.ThrowException(ex);
                processor.ProcessNextMessage();
                bus.Dispose();
            }
Example #2
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));
            }
            public void WillRemoveFromQueueIfUnableToProcessMessage()
            {
                var processor = new FakeMessageProcessor <Object>();
                var bus       = new OptimisticMessageSender <Object>(processor, 1);
                var ex        = new InvalidOperationException();
                var attempt   = 0;

                bus.Send(new Message <Object>(Guid.NewGuid(), HeaderCollection.Empty, new Object()));
                processor.WaitForMessage();
                processor.ThrowException(ex);
                processor.ProcessNextMessage();

                while (bus.Count > 0 && attempt < 10)
                {
                    Thread.Sleep(100);
                }

                Assert.Equal(0, bus.Count);
            }
            public void WillIgnorePosionMessageExceptions()
            {
                var processor = new FakeMessageProcessor<Object>();
                var bus = new OptimisticMessageSender<Object>(processor);
                var ex = new InvalidOperationException();

                bus.Send(new Message<Object>(Guid.NewGuid(), HeaderCollection.Empty, new Object()));
                processor.WaitForMessage();
                processor.ThrowException(ex);
                processor.ProcessNextMessage();
                bus.Dispose();
            }
            public void WillRemoveFromQueueIfUnableToProcessMessage()
            {
                var processor = new FakeMessageProcessor<Object>();
                var bus = new OptimisticMessageSender<Object>(processor, 1);
                var ex = new InvalidOperationException();
                var attempt = 0;

                bus.Send(new Message<Object>(Guid.NewGuid(), HeaderCollection.Empty, new Object()));
                processor.WaitForMessage();
                processor.ThrowException(ex);
                processor.ProcessNextMessage();

                while (bus.Count > 0 && attempt < 10) Thread.Sleep(100);

                Assert.Equal(0, bus.Count);
            }