protected AmqpNmsBytesMessageFacade CreateReceivedBytesMessageFacade(global::Amqp.Message message)
        {
            AmqpNmsBytesMessageFacade facade = new AmqpNmsBytesMessageFacade();

            facade.Initialize(CreateMockConsumer(CreateMockAmqpConnection()), message);
            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;
        }
        protected AmqpNmsBytesMessageFacade CreateNewBytesMessageFacade()
        {
            AmqpNmsBytesMessageFacade facade = new AmqpNmsBytesMessageFacade();

            facade.Initialize(CreateMockAmqpConnection());
            return(facade);
        }
Exemplo n.º 4
0
        public void TestGetOutputStreamThrowsJMSISEWhenFacadeBeingReadFrom()
        {
            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateNewBytesMessageFacade();

            amqpNmsBytesMessageFacade.GetDataReader();

            Assert.Throws <IllegalStateException>(() => amqpNmsBytesMessageFacade.GetDataWriter());
        }
Exemplo n.º 5
0
 private void AssertDataBodyAsExpected(AmqpNmsBytesMessageFacade facade, int length)
 {
     Assert.NotNull(facade.Message.BodySection, "Expected body section to be present");
     Assert.IsInstanceOf <Data>(facade.Message.BodySection);
     byte[] value = ((Data)facade.Message.BodySection).Binary;
     Assert.NotNull(value);
     Assert.AreEqual(length, value.Length, "Unexpected body length");
 }
Exemplo n.º 6
0
        public void TestNewMessageDoesNotContainMessageTypeAnnotation()
        {
            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateNewBytesMessageFacade();

            Assert.IsNull(amqpNmsBytesMessageFacade.Message.MessageAnnotations);

            Assert.AreEqual(MessageSupport.JMS_TYPE_BYTE, amqpNmsBytesMessageFacade.JmsMsgType);
        }
Exemplo n.º 7
0
        public void TestGetOutputStreamReturnsSameStream()
        {
            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateNewBytesMessageFacade();

            BinaryReader binaryReader1 = amqpNmsBytesMessageFacade.GetDataReader();
            BinaryReader binaryReader2 = amqpNmsBytesMessageFacade.GetDataReader();

            Assert.AreSame(binaryReader1, binaryReader2);
        }
Exemplo n.º 8
0
        public void TestNewMessageHasContentType()
        {
            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateNewBytesMessageFacade();

            Assert.NotNull(amqpNmsBytesMessageFacade.Message.Properties);
            Assert.NotNull(amqpNmsBytesMessageFacade.Message.Properties.ContentType);

            string contentType = amqpNmsBytesMessageFacade.Message.Properties.ContentType.ToString();

            Assert.AreEqual("application/octet-stream", contentType);
        }
Exemplo n.º 9
0
        public void TestGetInputStreamUsingReceivedMessageWithNoBodySectionReturnsEmptyInputStream()
        {
            global::Amqp.Message message = new global::Amqp.Message();

            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateReceivedBytesMessageFacade(message);
            BinaryReader binaryReader = amqpNmsBytesMessageFacade.GetDataReader();

            Assert.NotNull(binaryReader);

            Assert.AreEqual(0, amqpNmsBytesMessageFacade.GetDataReader().Read(new byte[1], 0, 1));
        }
Exemplo n.º 10
0
        public void TestCopyOfNewMessageDoesNotCreateDataSection()
        {
            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateNewBytesMessageFacade();

            AmqpNmsBytesMessageFacade copy = amqpNmsBytesMessageFacade.Copy() as AmqpNmsBytesMessageFacade;

            Assert.IsNotNull(copy);
            AssertDataBodyAsExpected(amqpNmsBytesMessageFacade, 0);
            AssertDataBodyAsExpected(copy, 0);
            Assert.AreEqual(amqpNmsBytesMessageFacade.ContentType, copy.ContentType);
        }
Exemplo n.º 11
0
        public void TestGetInputStreamWithNewMessageReturnsEmptyInputStream()
        {
            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateNewBytesMessageFacade();

            BinaryReader byteArrayInputStream = amqpNmsBytesMessageFacade.GetDataReader();

            Assert.NotNull(byteArrayInputStream);

            // try to read a byte, it should return 0 bytes read, i.e EOS.
            Assert.AreEqual(0, byteArrayInputStream.Read(new byte[1], 0, 1));
        }
Exemplo n.º 12
0
        public void TestGetBodyLengthUsingPopulatedMessageToSend()
        {
            byte[] bytes = Encoding.UTF8.GetBytes("myBytes");

            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateNewBytesMessageFacade();
            BinaryWriter binaryWriter = amqpNmsBytesMessageFacade.GetDataWriter();

            binaryWriter.Write(bytes);

            amqpNmsBytesMessageFacade.Reset();

            Assert.AreEqual(bytes.Length, amqpNmsBytesMessageFacade.BodyLength);
        }
Exemplo n.º 13
0
        public void TestGetBodyLengthUsingReceivedMessageWithAmqpValueSectionContainingNull()
        {
            global::Amqp.Message message = new global::Amqp.Message
            {
                BodySection = new AmqpValue
                {
                    Value = null
                }
            };

            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateReceivedBytesMessageFacade(message);

            Assert.AreEqual(0, amqpNmsBytesMessageFacade.BodyLength, "Message reports unexpected length");
        }
Exemplo n.º 14
0
        public void TestCopyOnPopulatedNewMessageCreatesDataSection()
        {
            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateNewBytesMessageFacade();

            byte[]       bytes        = Encoding.UTF8.GetBytes("myBytes");
            BinaryWriter binaryWriter = amqpNmsBytesMessageFacade.GetDataWriter();

            binaryWriter.Write(bytes);

            AmqpNmsBytesMessageFacade copy = amqpNmsBytesMessageFacade.Copy() as AmqpNmsBytesMessageFacade;

            Assert.IsNotNull(copy);
            AssertDataBodyAsExpected(amqpNmsBytesMessageFacade, bytes.Length);
            AssertDataBodyAsExpected(copy, bytes.Length);
            Assert.AreEqual(amqpNmsBytesMessageFacade.ContentType, copy.ContentType);
        }
Exemplo n.º 15
0
        public void TestGetBodyLengthUsingReceivedMessageWithAmqpValueSectionContainingNonZeroLengthBinary()
        {
            int length = 10;

            global::Amqp.Message message = new global::Amqp.Message
            {
                BodySection = new AmqpValue
                {
                    Value = new byte[length]
                }
            };

            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateReceivedBytesMessageFacade(message);

            Assert.AreEqual(length, amqpNmsBytesMessageFacade.BodyLength, "Message reports unexpected length");
        }
Exemplo n.º 16
0
        public void TestHasBodyWithActiveOutputStream()
        {
            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateNewBytesMessageFacade();

            Assert.False(amqpNmsBytesMessageFacade.HasBody());

            BinaryWriter binaryWriter = amqpNmsBytesMessageFacade.GetDataWriter();

            Assert.False(amqpNmsBytesMessageFacade.HasBody());

            binaryWriter.Write(1);

            // Body exists after some data written.

            Assert.True(amqpNmsBytesMessageFacade.HasBody());
            amqpNmsBytesMessageFacade.Reset();
            Assert.True(amqpNmsBytesMessageFacade.HasBody());
        }
Exemplo n.º 17
0
        public void TestGetInputStreamUsingReceivedMessageWithDataSectionContainingNothingReturnsEmptyStream()
        {
            global::Amqp.Message message = new global::Amqp.Message
            {
                BodySection = new Data()
                {
                    Binary = null
                }
            };

            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateReceivedBytesMessageFacade(message);
            BinaryReader binaryReader = amqpNmsBytesMessageFacade.GetDataReader();

            Assert.NotNull(binaryReader);

            Assert.AreEqual(0, amqpNmsBytesMessageFacade.BodyLength, "Message reports unexpected length");
            Assert.AreEqual(0, binaryReader.Read(new byte[1], 0, 1));
        }
Exemplo n.º 18
0
        public void TestGetMethodsWithNonAmqpValueNonDataSectionThrowsISE()
        {
            global::Amqp.Message message = new global::Amqp.Message
            {
                BodySection = new AmqpSequence()
                {
                    List = new List <object>()
                }
            };

            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateReceivedBytesMessageFacade(message);

            Assert.Throws <IllegalStateException>(() => amqpNmsBytesMessageFacade.GetDataReader());
            Assert.Throws <IllegalStateException>(() =>
            {
                long bodyLength = amqpNmsBytesMessageFacade.BodyLength;
            });
        }
Exemplo n.º 19
0
        public void TestGetOutputStreamOnCopiedMessageLeavesOriginalUntouched()
        {
            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateNewBytesMessageFacade();

            byte[]       bytes        = Encoding.UTF8.GetBytes("myBytes");
            BinaryWriter binaryWriter = amqpNmsBytesMessageFacade.GetDataWriter();

            binaryWriter.Write(bytes);

            AmqpNmsBytesMessageFacade copy = amqpNmsBytesMessageFacade.Copy() as AmqpNmsBytesMessageFacade;

            Assert.IsNotNull(copy);
            AssertDataBodyAsExpected(amqpNmsBytesMessageFacade, bytes.Length);
            AssertDataBodyAsExpected(copy, bytes.Length);

            copy.GetDataWriter();
            AssertDataBodyAsExpected(amqpNmsBytesMessageFacade, bytes.Length);
            AssertDataBodyAsExpected(copy, 0);
        }
Exemplo n.º 20
0
        public void TestHasBodyWithContent()
        {
            byte[] bodyBytes             = Encoding.UTF8.GetBytes("myOrigBytes");
            global::Amqp.Message message = new global::Amqp.Message
            {
                BodySection = new Data()
                {
                    Binary = bodyBytes
                }
            };

            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateReceivedBytesMessageFacade(message);

            Assert.True(amqpNmsBytesMessageFacade.HasBody());

            amqpNmsBytesMessageFacade.ClearBody();

            Assert.False(amqpNmsBytesMessageFacade.HasBody());
        }
Exemplo n.º 21
0
        public void TestClearBodyWithExistingOutputStream()
        {
            byte[] bytes = Encoding.UTF8.GetBytes("myBytes");
            global::Amqp.Message message = new global::Amqp.Message
            {
                BodySection = new Data
                {
                    Binary = bytes
                }
            };

            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateReceivedBytesMessageFacade(message);

            amqpNmsBytesMessageFacade.GetDataWriter();

            amqpNmsBytesMessageFacade.ClearBody();

            AssertDataBodyAsExpected(amqpNmsBytesMessageFacade, 0);
        }
Exemplo n.º 22
0
        public void TestClearBodySetsBodyLength0AndCausesEmptyInputStream()
        {
            byte[] bytes = Encoding.UTF8.GetBytes("myBytes");
            global::Amqp.Message message = new global::Amqp.Message
            {
                BodySection = new Data
                {
                    Binary = bytes
                }
            };

            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateReceivedBytesMessageFacade(message);

            amqpNmsBytesMessageFacade.ClearBody();

            Assert.True(amqpNmsBytesMessageFacade.BodyLength == 0, "Expected no message content from facade");
            Assert.AreEqual(0, amqpNmsBytesMessageFacade.GetDataReader().Read(new byte[1], 0, 1));

            AssertDataBodyAsExpected(amqpNmsBytesMessageFacade, 0);
        }
Exemplo n.º 23
0
        public void TestGetMethodsWithAmqpValueContainingNonNullNonBinaryValueThrowsISE()
        {
            byte[] orig        = Encoding.UTF8.GetBytes("myOrigBytes");
            byte[] replacement = Encoding.UTF8.GetBytes("myReplacementBytes");

            global::Amqp.Message message = new global::Amqp.Message
            {
                BodySection = new Data()
                {
                    Binary = orig
                }
            };

            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateReceivedBytesMessageFacade(message);

            BinaryWriter binaryWriter = amqpNmsBytesMessageFacade.GetDataWriter();

            binaryWriter.Write(replacement);

            amqpNmsBytesMessageFacade.Reset();

            // Retrieve the new Binary from the underlying message, check they match
            // (the backing arrays may be different length so not checking arrayEquals)
            Data body = (Data)amqpNmsBytesMessageFacade.Message.BodySection;

            Assert.AreEqual(replacement, body.Binary, "Underlying message data section did not contain the expected bytes");

            Assert.AreEqual(replacement.Length, amqpNmsBytesMessageFacade.BodyLength, "expected body length to match replacement bytes");

            // retrieve the new bytes via an InputStream, check they match expected
            byte[]       receivedBytes = new byte[replacement.Length];
            BinaryReader binaryReader  = amqpNmsBytesMessageFacade.GetDataReader();

            binaryReader.Read(receivedBytes, 0, replacement.Length);

            CollectionAssert.AreEqual(replacement, receivedBytes, "Retrieved bytes from input steam did not match expected bytes");

            // verify no more bytes remain, i.e EOS
            Assert.AreEqual(0, binaryReader.Read(new byte[1], 0, 1));
        }
Exemplo n.º 24
0
        public void TestInputStreamUsingReceivedMessageWithDataSection()
        {
            byte[] bytes = Encoding.UTF8.GetBytes("myBytes");
            global::Amqp.Message message = new global::Amqp.Message
            {
                BodySection = new Data()
                {
                    Binary = bytes
                }
            };

            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateReceivedBytesMessageFacade(message);
            BinaryReader binaryReader = amqpNmsBytesMessageFacade.GetDataReader();

            // retrieve the expected bytes, check they match
            byte[] receivedBytes = new byte[bytes.Length];

            binaryReader.Read(receivedBytes, 0, bytes.Length);

            CollectionAssert.AreEqual(bytes, receivedBytes);

            // verify no more bytes remain, i.e EOS
            Assert.AreEqual(0, binaryReader.Read(new byte[1], 0, 1));
        }
Exemplo n.º 25
0
        public void TestHasBodyOnNewMessage()
        {
            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateNewBytesMessageFacade();

            Assert.False(amqpNmsBytesMessageFacade.HasBody());
        }
Exemplo n.º 26
0
        public void TestGetBodyLengthUsingNewMessage()
        {
            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateNewBytesMessageFacade();

            Assert.AreEqual(0, amqpNmsBytesMessageFacade.BodyLength);
        }