Пример #1
0
        public void TestClearBody()
        {
            AmqpNmsStreamMessageFacade amqpNmsStreamMessageFacade = CreateNewStreamMessageFacade();

            // add some stuff
            amqpNmsStreamMessageFacade.Put(true);
            amqpNmsStreamMessageFacade.Put(false);

            // retrieve only some of it, leaving some unread
            Assert.AreEqual(true, amqpNmsStreamMessageFacade.Peek(), "Unexpected value retrieved");
            amqpNmsStreamMessageFacade.Pop();

            // clear
            amqpNmsStreamMessageFacade.ClearBody();

            // add something else
            amqpNmsStreamMessageFacade.Put('c');

            // check we can get it alone before another IOOBE (i.e position was reset, other contents cleared)

            Assert.AreEqual('c', amqpNmsStreamMessageFacade.Peek(), "Unexpected value retrieved");
            amqpNmsStreamMessageFacade.Pop();

            Assert.Throws <MessageEOFException>(() => amqpNmsStreamMessageFacade.Peek());
        }
Пример #2
0
        public void TestResetPositionAfterPeekThrowsMEOFE()
        {
            global::Amqp.Message message = new global::Amqp.Message();
            List <object>        list    = new List <object>();

            list.Add(false);
            list.Add(true);
            message.BodySection = new AmqpSequence()
            {
                List = list
            };

            AmqpNmsStreamMessageFacade amqpNmsStreamMessageFacade = CreateReceivedStreamMessageFacade(message);

            Assert.AreEqual(false, amqpNmsStreamMessageFacade.Peek(), "Unexpected value retrieved");
            amqpNmsStreamMessageFacade.Pop();
            Assert.AreEqual(true, amqpNmsStreamMessageFacade.Peek(), "Unexpected value retrieved");
            amqpNmsStreamMessageFacade.Pop();

            Assert.Throws <MessageEOFException>(() => amqpNmsStreamMessageFacade.Peek(), "expected exception to be thrown");

            amqpNmsStreamMessageFacade.Reset();

            Assert.AreEqual(false, amqpNmsStreamMessageFacade.Peek(), "Unexpected value retrieved");
            amqpNmsStreamMessageFacade.Pop();
            Assert.AreEqual(true, amqpNmsStreamMessageFacade.Peek(), "Unexpected value retrieved");
        }
        protected AmqpNmsStreamMessageFacade CreateReceivedStreamMessageFacade(global::Amqp.Message message)
        {
            AmqpNmsStreamMessageFacade facade = new AmqpNmsStreamMessageFacade();

            facade.Initialize(CreateMockConsumer(CreateMockAmqpConnection()), message);
            return(facade);
        }
        protected AmqpNmsStreamMessageFacade CreateNewStreamMessageFacade()
        {
            AmqpNmsStreamMessageFacade facade = new AmqpNmsStreamMessageFacade();

            facade.Initialize(CreateMockAmqpConnection());
            return(facade);
        }
        private AmqpNmsMessageFacade CreateMessageFacadeFromTypeId(sbyte msgType)
        {
            AmqpNmsMessageFacade message;
            switch (msgType)
            {
                case MessageSupport.JMS_TYPE_MSG:
                    message = new AmqpNmsMessageFacade();
                    break;
                case MessageSupport.JMS_TYPE_BYTE:
                    message = new AmqpNmsBytesMessageFacade();
                    break;
                case MessageSupport.JMS_TYPE_TXT:
                    message = new AmqpNmsTextMessageFacade();
                    break;
                case MessageSupport.JMS_TYPE_OBJ:
                    message = new AmqpNmsObjectMessageFacade();
                    break;
                case MessageSupport.JMS_TYPE_STRM:
                    message = new AmqpNmsStreamMessageFacade();
                    break;
                case MessageSupport.JMS_TYPE_MAP:
                    message = new AmqpNmsMapMessageFacade();
                    break;
                default:
                    throw new ArgumentOutOfRangeException(nameof(msgType));
            }

            message.Initialize(CreateMockAmqpConnection());

            return message;
        }
Пример #6
0
        public void TestNewMessageToSendContainsAmqpSequenceBody()
        {
            AmqpNmsStreamMessageFacade amqpNmsStreamMessageFacade = CreateNewStreamMessageFacade();
            object body = amqpNmsStreamMessageFacade.Message.BodySection;

            Assert.NotNull(body, "Body section was not present");
            Assert.That(body, Is.InstanceOf <AmqpSequence>(), "Body section was not of expected type: " + body.GetType());
        }
Пример #7
0
        public void TestNewMessageToSendDoesNotContainMessageTypeAnnotation()
        {
            AmqpNmsStreamMessageFacade amqpNmsStreamMessageFacade = CreateNewStreamMessageFacade();
            MessageAnnotations         annotations = amqpNmsStreamMessageFacade.MessageAnnotations;

            Assert.Null(annotations, "MessageAnnotations section was present");
            Assert.AreEqual(MessageSupport.JMS_TYPE_STRM, amqpNmsStreamMessageFacade.JmsMessageType);
        }
Пример #8
0
        public void TestCreateWithNoBodySection()
        {
            global::Amqp.Message message = new global::Amqp.Message();
            message.BodySection = null;

            AmqpNmsStreamMessageFacade amqpNmsStreamMessageFacade = CreateReceivedStreamMessageFacade(message);

            //Should be able to use the message, e.g clearing it and adding to it.
            amqpNmsStreamMessageFacade.ClearBody();
            amqpNmsStreamMessageFacade.Put("myString");
        }
Пример #9
0
        public void TestPeekUsingReceivedMessageWithAmqpSequenceBodyReturnsExpectedValue()
        {
            global::Amqp.Message message = new global::Amqp.Message();
            List <object>        list    = new List <object>();

            list.Add(false);
            message.BodySection = new AmqpSequence()
            {
                List = list
            };

            AmqpNmsStreamMessageFacade amqpNmsStreamMessageFacade = CreateReceivedStreamMessageFacade(message);

            Assert.AreEqual(false, amqpNmsStreamMessageFacade.Peek(), "Unexpected value retrieved");
        }
Пример #10
0
        public void TestMessageCopy()
        {
            AmqpNmsStreamMessageFacade amqpNmsStreamMessageFacade = CreateNewStreamMessageFacade();

            amqpNmsStreamMessageFacade.Put(true);
            amqpNmsStreamMessageFacade.Put("test");
            amqpNmsStreamMessageFacade.Put(1);

            AmqpNmsStreamMessageFacade copy = amqpNmsStreamMessageFacade.Copy() as AmqpNmsStreamMessageFacade;

            Assert.IsNotNull(copy);
            Assert.AreEqual(true, copy.Peek());
            copy.Pop();
            Assert.AreEqual("test", copy.Peek());
            copy.Pop();
            Assert.AreEqual(1, copy.Peek());
            copy.Pop();
        }
Пример #11
0
        public void TestRepeatedPeekReturnsExpectedValue()
        {
            global::Amqp.Message message = new global::Amqp.Message();
            List <object>        list    = new List <object>();

            list.Add(false);
            list.Add(true);
            message.BodySection = new AmqpSequence()
            {
                List = list
            };

            AmqpNmsStreamMessageFacade amqpNmsStreamMessageFacade = CreateReceivedStreamMessageFacade(message);

            Assert.True(amqpNmsStreamMessageFacade.HasBody(), "Message should report that it contains a body");
            Assert.AreEqual(false, amqpNmsStreamMessageFacade.Peek(), "Unexpected value retrieved");
            Assert.AreEqual(false, amqpNmsStreamMessageFacade.Peek(), "Unexpected value retrieved");
        }
Пример #12
0
        public void TestPopWithNewMessageToSendThrowsMEOFE()
        {
            AmqpNmsStreamMessageFacade amqpNmsStreamMessageFacade = CreateNewStreamMessageFacade();

            Assert.Throws <MessageEOFException>(() => amqpNmsStreamMessageFacade.Pop());
        }
Пример #13
0
        public void TestNewMessageToSendReportsNoBody()
        {
            AmqpNmsStreamMessageFacade amqpNmsStreamMessageFacade = CreateNewStreamMessageFacade();

            Assert.False(amqpNmsStreamMessageFacade.HasBody(), "Message should report no body");
        }