public void NoMessageIdByDefault()
        {
            var converter = new SimpleMessageConverter();
            var message   = converter.ToMessage("foo", null);

            Assert.IsNull(message.MessageProperties.MessageId);
        }
        public void BytesAsDefaultMessageBodyType()
        {
            var converter = new SimpleMessageConverter();
            var message   = new Message("test".ToByteArrayWithEncoding("UTF-8"), new MessageProperties());
            var result    = converter.FromMessage(message);

            Assert.AreEqual(typeof(byte[]), result.GetType());
            Assert.AreEqual("test", ((byte[])result).ToStringWithEncoding("UTF-8"));
        }
        public void OptionalMessageId()
        {
            var converter = new SimpleMessageConverter();

            converter.CreateMessageIds = true;
            var message = converter.ToMessage("foo", null);

            Assert.IsNotNull(message.MessageProperties.MessageId);
        }
Esempio n. 4
0
 public void Setup()
 {
     //ConnectionFactory cf = new ConnectionFactory("tcp://localhost:7222");
     //Connection c = cf.CreateConnection();
     //Session tibcoSession = null;// c.CreateSession(false, SessionMode.AutoAcknowledge);
     mocks     = new MockRepository();
     session   = (ISession)mocks.CreateMock(typeof(ISession));
     converter = new SimpleMessageConverter();
 }
        public void StringToMessage()
        {
            var converter   = new SimpleMessageConverter();
            var message     = converter.ToMessage("test", new MessageProperties());
            var contentType = message.MessageProperties.ContentType;
            var content     = message.Body.ToStringWithEncoding(message.MessageProperties.ContentEncoding);

            Assert.AreEqual("text/plain", contentType);
            Assert.AreEqual("test", content);
        }
        public void MessageToString()
        {
            var converter = new SimpleMessageConverter();
            var message   = new Message("test".ToByteArrayWithEncoding("UTF-8"), new MessageProperties());

            message.MessageProperties.ContentType = MessageProperties.CONTENT_TYPE_TEXT_PLAIN;
            var result = converter.FromMessage(message);

            Assert.AreEqual(typeof(string), result.GetType());
            Assert.AreEqual("test", result);
        }
        public void ToMessageWithPayloadAndHeaders()
        {
            var headers = new MessageHeaders(new Dictionary <string, object>()
            {
                { "foo", "bar" }
            });
            var converter = new SimpleMessageConverter();
            var message   = converter.ToMessage("payload", headers);

            Assert.Equal("payload", message.Payload);
            Assert.Equal("bar", message.Headers["foo"]);
        }
Esempio n. 8
0
        /// <summary>Does the test.</summary>
        /// <param name="concurrentConsumers">The concurrent consumers.</param>
        /// <param name="configurer">The configurer.</param>
        private void DoTest(int concurrentConsumers, IContainerConfigurer configurer)
        {
            var messageCount      = 10;
            var template          = new RabbitTemplate();
            var connectionFactory = new CachingConnectionFactory();

            connectionFactory.ChannelCacheSize = concurrentConsumers;
            connectionFactory.Port             = BrokerTestUtils.GetPort();
            template.ConnectionFactory         = connectionFactory;
            var messageConverter = new SimpleMessageConverter();

            messageConverter.CreateMessageIds = true;
            template.MessageConverter         = messageConverter;
            for (var i = 0; i < messageCount; i++)
            {
                template.ConvertAndSend(queue1.Name, i);
                template.ConvertAndSend(queue2.Name, i);
            }

            var container = new SimpleMessageListenerContainer(connectionFactory);
            var latch     = new CountdownEvent(messageCount * 2);
            var listener  = new MultiplePocoListener(latch);

            container.MessageListener     = new MessageListenerAdapter(listener);
            container.AcknowledgeMode     = AcknowledgeModeUtils.AcknowledgeMode.Auto;
            container.ChannelTransacted   = true;
            container.ConcurrentConsumers = concurrentConsumers;
            configurer.Configure(container);
            container.AfterPropertiesSet();
            container.Start();
            try
            {
                var timeout = Math.Min((1 + messageCount) / concurrentConsumers, 50);
                Logger.Info("Timeout: " + timeout);
                var waited = latch.Wait(timeout * 1000);
                Logger.Info("All messages recovered: " + waited);
                Assert.AreEqual(concurrentConsumers, container.ActiveConsumerCount);
                Assert.True(waited, "Timed out waiting for messages");
            }
            catch (ThreadInterruptedException e)
            {
                Thread.CurrentThread.Interrupt();
                throw new ThreadStateException("unexpected interruption");
            }
            finally
            {
                container.Shutdown();
                Assert.AreEqual(0, container.ActiveConsumerCount);
            }

            Assert.Null(template.ReceiveAndConvert(queue1.Name));
            Assert.Null(template.ReceiveAndConvert(queue2.Name));
        }
        public void BytesToMessage()
        {
            var converter   = new SimpleMessageConverter();
            var message     = converter.ToMessage(new byte[] { 1, 2, 3 }, new MessageProperties());
            var contentType = message.MessageProperties.ContentType;
            var body        = message.Body;

            Assert.AreEqual("application/octet-stream", contentType);
            Assert.AreEqual(3, body.Length);
            Assert.AreEqual(1, body[0]);
            Assert.AreEqual(2, body[1]);
            Assert.AreEqual(3, body[2]);
        }
        public void DefaultHeaderMappingMessageConverter()
        {
            ChannelPublishingJmsMessageListener listener = new ChannelPublishingJmsMessageListener();

            listener.AfterPropertiesSet();
            HeaderMappingMessageConverter hmmc = GetHmmc(listener);

            Assert.That(hmmc, Is.Not.Null);
            SimpleMessageConverter smc = hmmc.GetType().GetField("converter", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(hmmc) as
                                         SimpleMessageConverter;

            Assert.That(smc, Is.Not.Null);
        }
        public void SerializedObjectToMessage()
        {
            var converter   = new SimpleMessageConverter();
            var testObject  = new TestObject("foo");
            var message     = converter.ToMessage(testObject, new MessageProperties());
            var contentType = message.MessageProperties.ContentType;
            var body        = message.Body;

            Assert.AreEqual("application/x-java-serialized-object", contentType);
            var binaryFormatter    = new BinaryFormatter();
            var byteStream         = new MemoryStream(body);
            var deserializedObject = (TestObject)binaryFormatter.Deserialize(byteStream);

            Assert.AreEqual(testObject, deserializedObject);
        }
Esempio n. 12
0
        public void ToMessageWithPayloadAndMutableHeaders()
        {
            var accessor = new MessageHeaderAccessor();

            accessor.SetHeader("foo", "bar");
            accessor.LeaveMutable = true;
            var headers = accessor.MessageHeaders;

            var converter = new SimpleMessageConverter();
            var message   = converter.ToMessage("payload", headers);

            Assert.Equal("payload", message.Payload);
            Assert.Same(headers, message.Headers);
            Assert.Equal("bar", message.Headers["foo"]);
        }
        public void MessageToBytes()
        {
            var converter = new SimpleMessageConverter();
            var message   = new Message(new byte[] { 1, 2, 3 }, new MessageProperties());

            message.MessageProperties.ContentType = MessageProperties.CONTENT_TYPE_BYTES;
            var result = converter.FromMessage(message);

            Assert.AreEqual(typeof(byte[]), result.GetType());
            var resultBytes = (byte[])result;

            Assert.AreEqual(3, resultBytes.Length);
            Assert.AreEqual(1, resultBytes[0]);
            Assert.AreEqual(2, resultBytes[1]);
            Assert.AreEqual(3, resultBytes[2]);
        }
        /// <summary>Creates the template.</summary>
        /// <param name="concurrentConsumers">The concurrent consumers.</param>
        /// <returns>The template.</returns>
        private RabbitTemplate CreateTemplate(int concurrentConsumers)
        {
            var template          = new RabbitTemplate();
            var connectionFactory = new CachingConnectionFactory();

            connectionFactory.ChannelCacheSize = concurrentConsumers;
            connectionFactory.Port             = BrokerTestUtils.GetPort();
            template.ConnectionFactory         = connectionFactory;
            if (this.messageConverter == null)
            {
                var internalmessageConverter = new SimpleMessageConverter();
                internalmessageConverter.CreateMessageIds = true;
                this.messageConverter = internalmessageConverter;
            }

            template.MessageConverter = this.messageConverter;
            return(template);
        }
        public void MessageToSerializedObject()
        {
            var converter  = new SimpleMessageConverter();
            var properties = new MessageProperties();

            properties.ContentType = MessageProperties.CONTENT_TYPE_SERIALIZED_OBJECT;
            var binaryFormatter = new BinaryFormatter();
            var byteStream      = new MemoryStream();
            var testObject      = new TestObject("foo");

            binaryFormatter.Serialize(byteStream, testObject);
            var bytes   = byteStream.ToArray();
            var message = new Message(bytes, properties);
            var result  = converter.FromMessage(message);

            Assert.AreEqual(typeof(TestObject), result.GetType());
            Assert.AreEqual(testObject, result);
        }
        public void testStatefulRetryWithNoMessageIds()
        {
            var messageCount        = 2;
            var txSize              = 1;
            var failFrequency       = 1;
            var concurrentConsumers = 1;
            var messageConverter    = new SimpleMessageConverter();

            // There will be no key for these messages so they cannot be recovered...
            messageConverter.CreateMessageIds = false;
            this.messageConverter             = messageConverter;

            // Beware of context cache busting if retry policy fails...

            /* TODO: Once Spring Retry is implemented.
             * this.retryTemplate = new RetryTemplate();
             * this.retryTemplate.setRetryContextCache(new MapRetryContextCache(1));
             */
            // The container should have shutdown, so there are now no active consumers
            // exception.expectMessage("expected:<1> but was:<0>");
            this.DoTestStatefulRetry(messageCount, txSize, failFrequency, concurrentConsumers);
        }
 public void Setup()
 {
     session   = A.Fake <ISession>();
     converter = new SimpleMessageConverter();
 }
Esempio n. 18
0
 public void Setup()
 {
     mocks     = new MockRepository();
     session   = mocks.StrictMock <ISession>();
     converter = new SimpleMessageConverter();
 }
 public void Setup()
 {
     mocks     = new MockRepository();
     session   = (ISession)mocks.CreateMock(typeof(ISession));
     converter = new SimpleMessageConverter();
 }