Beispiel #1
0
        public void MustSequentialProcessing()
        {
            var processingMessageHandler      = new MockupProcessingMessageHandler();
            var messageHandlerProvider        = new MockupMessageHandlerProvider();
            IProcessingMessageMailbox mailbox = new DefaultProcessingMessageMailbox("B001", "", messageHandlerProvider, processingMessageHandler, false, 1, 5);
            var testCount = 20;

            for (var i = 0; i < testCount; i++)
            {
                mailbox.Enqueue(new ProcessingMessage(new MessageA {
                    Id = $"M{i + 1}", Timestamp = DateTime.Now, BusinessKey = "B001"
                }, new MockupMessageExecutingContext()));
            }
            var processedMessages = processingMessageHandler.GetProcessedMessages();

            while (processedMessages.Length < testCount)
            {
                Thread.Sleep(100);
                processedMessages = processingMessageHandler.GetProcessedMessages();
            }
            for (var i = 0; i < testCount; i++)
            {
                Assert.Equal(i + 1, processedMessages[i].Sequence);
            }
        }
Beispiel #2
0
        public void InitializeWithEmptyBusinessKeyIsNotAllowed()
        {
            var processingMessageHandler = new MockupProcessingMessageHandler();
            var messageHandlerProvider   = new MockupMessageHandlerProvider();

            Assert.Throws <ArgumentNullException>(() =>
            {
                IProcessingMessageMailbox mailbox = new DefaultProcessingMessageMailbox("", "", messageHandlerProvider, processingMessageHandler, false, 1, 2);
            });
        }
Beispiel #3
0
        public void EnqueueNullIsNotAllowed()
        {
            var processingMessageHandler      = new MockupProcessingMessageHandler();
            var messageHandlerProvider        = new MockupMessageHandlerProvider();
            IProcessingMessageMailbox mailbox = new DefaultProcessingMessageMailbox("B001", "", messageHandlerProvider, processingMessageHandler, false, 1, 2);

            Assert.Throws <ArgumentNullException>(() =>
            {
                mailbox.Enqueue(null);
            });
        }
Beispiel #4
0
        public void EnqueueDifferentBussinessKeyIsNotAllowed()
        {
            var processingMessageHandler      = new MockupProcessingMessageHandler();
            var messageHandlerProvider        = new MockupMessageHandlerProvider();
            IProcessingMessageMailbox mailbox = new DefaultProcessingMessageMailbox("B001", "", messageHandlerProvider, processingMessageHandler, false, 1, 2);

            Assert.Throws <InvalidOperationException>(() =>
            {
                mailbox.Enqueue(new ProcessingMessage(new MessageA {
                    Id = "1", Timestamp = DateTime.Now, BusinessKey = "B002"
                }, new MockupMessageExecutingContext()));
            });
        }