Exemplo n.º 1
0
        public void testSingleSelectorRejects()
        {
            AtomicInteger               counter     = new AtomicInteger();
            IMessageSelector            selector    = new TestMessageSelector(false, counter);
            MessageSelectingInterceptor interceptor = new MessageSelectingInterceptor(selector);
            QueueChannel channel = new QueueChannel();

            channel.AddInterceptor(interceptor);
            channel.Send(new StringMessage("test1"));
        }
        public void TestPostSendInterceptorWithSentMessage()
        {
            QueueChannel  channel = new QueueChannel();
            AtomicBoolean invoked = new AtomicBoolean(false);

            channel.AddInterceptor(new TestPostSendInterceptorWithSentMessageInterceptor(invoked, channel));

            channel.Send(new StringMessage("test"));
            Assert.IsTrue(invoked.Value);
        }
Exemplo n.º 3
0
        public void testSingleSelectorAccepts()
        {
            AtomicInteger               counter     = new AtomicInteger();
            IMessageSelector            selector    = new TestMessageSelector(true, counter);
            MessageSelectingInterceptor interceptor = new MessageSelectingInterceptor(selector);
            QueueChannel channel = new QueueChannel();

            channel.AddInterceptor(interceptor);
            Assert.That(channel.Send(new StringMessage("test1")), Is.True);
        }
Exemplo n.º 4
0
        public void testMultipleSelectorsAccept()
        {
            AtomicInteger               counter     = new AtomicInteger();
            IMessageSelector            selector1   = new TestMessageSelector(true, counter);
            IMessageSelector            selector2   = new TestMessageSelector(true, counter);
            MessageSelectingInterceptor interceptor = new MessageSelectingInterceptor(selector1, selector2);
            QueueChannel channel = new QueueChannel();

            channel.AddInterceptor(interceptor);
            Assert.That(channel.Send(new StringMessage("test1")), Is.True);
            Assert.That(counter.Value, Is.EqualTo(2));
        }
        public void TestPreSendInterceptorReturnsMessage()
        {
            QueueChannel channel = new QueueChannel();

            channel.AddInterceptor(new PreSendReturnsMessageInterceptor());
            channel.Send(new StringMessage("test"));
            IMessage result = channel.Receive(TimeSpan.Zero);

            Assert.IsNotNull(result);
            Assert.That("test", Is.EqualTo(result.Payload));
            Assert.That(result.Headers.Get(typeof(PreSendReturnsMessageInterceptor).Name), Is.EqualTo(1));
        }
        public void TestPreReceiveInterceptorReturnsFalse()
        {
            QueueChannel channel = new QueueChannel();

            channel.AddInterceptor(new PreReceiveReturnsFalseInterceptor());
            IMessage message = new StringMessage("test");

            channel.Send(message);
            IMessage result = channel.Receive(TimeSpan.Zero);

            Assert.That(PreReceiveReturnsFalseInterceptor.counter.Value, Is.EqualTo(1));
            Assert.IsNull(result);
        }
Exemplo n.º 7
0
        public void WireTapWithRejectingSelector()
        {
            QueueChannel mainChannel      = new QueueChannel();
            QueueChannel secondaryChannel = new QueueChannel();

            mainChannel.AddInterceptor(new WireTap(secondaryChannel, new TestSelector(false)));
            mainChannel.Send(new StringMessage("testing"));
            IMessage original = mainChannel.Receive(TimeSpan.Zero);

            Assert.IsNotNull(original);
            IMessage intercepted = secondaryChannel.Receive(TimeSpan.Zero);

            Assert.IsNull(intercepted);
        }
        public void TestPreSendInterceptorReturnsNull()
        {
            QueueChannel channel = new QueueChannel();
            PreSendReturnsNullInterceptor interceptor = new PreSendReturnsNullInterceptor();

            channel.AddInterceptor(interceptor);
            IMessage message = new StringMessage("test");

            channel.Send(message);
            Assert.That(interceptor.Count, Is.EqualTo(1));
            IMessage result = channel.Receive(TimeSpan.Zero);

            Assert.IsNull(result);
        }
Exemplo n.º 9
0
        public void WireTapWithNoSelector()
        {
            QueueChannel mainChannel      = new QueueChannel();
            QueueChannel secondaryChannel = new QueueChannel();

            mainChannel.AddInterceptor(new WireTap(secondaryChannel));
            mainChannel.Send(new StringMessage("testing"));
            IMessage original = mainChannel.Receive(TimeSpan.Zero);

            Assert.IsNotNull(original);
            IMessage intercepted = secondaryChannel.Receive(TimeSpan.Zero);

            Assert.IsNotNull(intercepted);
            Assert.That(original, Is.EqualTo(intercepted));
        }
        public void TestPostReceiveInterceptor()
        {
            AtomicInteger invokedCount = new AtomicInteger();
            AtomicInteger messageCount = new AtomicInteger();
            QueueChannel  channel      = new QueueChannel();

            channel.AddInterceptor(new TestPostReceiveInterceptorInterceptor(invokedCount, messageCount, channel));
            channel.Receive(TimeSpan.Zero);
            Assert.That(invokedCount.Value, Is.EqualTo(1));
            Assert.That(messageCount.Value, Is.EqualTo(0));
            channel.Send(new StringMessage("test"));
            IMessage result = channel.Receive(TimeSpan.Zero);

            Assert.IsNotNull(result);
            Assert.That(invokedCount.Value, Is.EqualTo(2));
            Assert.That(messageCount.Value, Is.EqualTo(1));
        }
        public void TestPostSendInterceptorWithUnsentMessage()
        {
            AtomicInteger invokedCounter    = new AtomicInteger(0);
            AtomicInteger sentCounter       = new AtomicInteger(0);
            QueueChannel  singleItemChannel = new QueueChannel(1);

            singleItemChannel.AddInterceptor(new TestPostSendInterceptorWithUnsentMessageInterceptor(invokedCounter,
                                                                                                     sentCounter,
                                                                                                     singleItemChannel));
            Assert.That(invokedCounter.Value, Is.EqualTo(0));
            Assert.That(sentCounter.Value, Is.EqualTo(0));
            singleItemChannel.Send(new StringMessage("test1"));
            Assert.That(invokedCounter.Value, Is.EqualTo(1));
            Assert.That(sentCounter.Value, Is.EqualTo(1));
            singleItemChannel.Send(new StringMessage("test2"), TimeSpan.Zero);
            Assert.That(invokedCounter.Value, Is.EqualTo(2));
            Assert.That(sentCounter.Value, Is.EqualTo(1));
        }
Exemplo n.º 12
0
        public void TestPostSendInterceptorWithUnsentMessage()
        {
            var singleItemChannel = new QueueChannel(provider, 1);
            var interceptor       = new TestPostSendInterceptorWithUnsentMessageInterceptor();

            singleItemChannel.AddInterceptor(interceptor);
            Assert.Equal(0, interceptor.InvokedCounter);
            Assert.Equal(0, interceptor.SentCounter);
            singleItemChannel.Send(new GenericMessage("test1"));
            Assert.Equal(1, interceptor.InvokedCounter);
            Assert.Equal(1, interceptor.SentCounter);
            singleItemChannel.Send(new GenericMessage("test2"), 0);
            Assert.Equal(2, interceptor.InvokedCounter);
            Assert.Equal(1, interceptor.SentCounter);
            Assert.NotNull(singleItemChannel.RemoveInterceptor(0));
            singleItemChannel.Send(new GenericMessage("test2"), 0);
            Assert.Equal(2, interceptor.InvokedCounter);
            Assert.Equal(1, interceptor.SentCounter);
        }
Exemplo n.º 13
0
        public void InterceptedMessageContainsHeaderValue()
        {
            QueueChannel mainChannel      = new QueueChannel();
            QueueChannel secondaryChannel = new QueueChannel();

            mainChannel.AddInterceptor(new WireTap(secondaryChannel));
            string   headerName = "testAttribute";
            IMessage message    = MessageBuilder.WithPayload("testing").SetHeader(headerName, 123).Build();

            mainChannel.Send(message);
            IMessage original             = mainChannel.Receive(TimeSpan.Zero);
            IMessage intercepted          = secondaryChannel.Receive(TimeSpan.Zero);
            object   originalAttribute    = original.Headers.Get(headerName);
            object   interceptedAttribute = intercepted.Headers.Get(headerName);

            Assert.IsNotNull(originalAttribute);
            Assert.IsNotNull(interceptedAttribute);
            Assert.That(original, Is.EqualTo(intercepted));
        }
        public void TestPostSendInterceptorWithUnsentMessage()
        {
            var singleItemChannel = new QueueChannel(provider.GetService <IApplicationContext>(), 1);
            var interceptor       = new TestPostSendInterceptorWithUnsentMessageInterceptor();

            singleItemChannel.AddInterceptor(interceptor);
            Assert.Equal(0, interceptor.InvokedCounter);
            Assert.Equal(0, interceptor.SentCounter);
            singleItemChannel.Send(Message.Create("test1"));
            Assert.Equal(1, interceptor.InvokedCounter);
            Assert.Equal(1, interceptor.SentCounter);
            singleItemChannel.Send(Message.Create("test2"), 0);
            Assert.Equal(2, interceptor.InvokedCounter);
            Assert.Equal(1, interceptor.SentCounter);
            Assert.NotNull(singleItemChannel.RemoveInterceptor(0));
            singleItemChannel.Send(Message.Create("test2"), 0);
            Assert.Equal(2, interceptor.InvokedCounter);
            Assert.Equal(1, interceptor.SentCounter);
        }
Exemplo n.º 15
0
        public void testMultipleSelectorsReject()
        {
            bool                        exceptionThrown = false;
            AtomicInteger               counter         = new AtomicInteger();
            IMessageSelector            selector1       = new TestMessageSelector(true, counter);
            IMessageSelector            selector2       = new TestMessageSelector(false, counter);
            IMessageSelector            selector3       = new TestMessageSelector(false, counter);
            IMessageSelector            selector4       = new TestMessageSelector(true, counter);
            MessageSelectingInterceptor interceptor     = new MessageSelectingInterceptor(selector1, selector2, selector3,
                                                                                          selector4);
            QueueChannel channel = new QueueChannel();

            channel.AddInterceptor(interceptor);
            try
            {
                channel.Send(new StringMessage("test1"));
            }
            catch (MessageDeliveryException)
            {
                exceptionThrown = true;
            }
            Assert.That(exceptionThrown, Is.True);
            Assert.That(counter.Value, Is.EqualTo(2));
        }