Ejemplo n.º 1
0
        public void TestGetOutputStreamReturnsSameStream()
        {
            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateNewBytesMessageFacade();

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

            Assert.AreSame(binaryReader1, binaryReader2);
        }
Ejemplo n.º 2
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));
        }
Ejemplo n.º 3
0
        public void TestGetOutputStreamThrowsJMSISEWhenFacadeBeingReadFrom()
        {
            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateNewBytesMessageFacade();

            amqpNmsBytesMessageFacade.GetDataReader();

            Assert.Throws <IllegalStateException>(() => amqpNmsBytesMessageFacade.GetDataWriter());
        }
Ejemplo n.º 4
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));
        }
Ejemplo n.º 5
0
        public void TestClearBodyWithExistingInputStream()
        {
            byte[] bytes = Encoding.UTF8.GetBytes("myBytes");
            global::Amqp.Message message = new global::Amqp.Message
            {
                BodySection = new Data
                {
                    Binary = bytes
                }
            };

            AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateReceivedBytesMessageFacade(message);

            amqpNmsBytesMessageFacade.GetDataReader();

            amqpNmsBytesMessageFacade.ClearBody();

            Assert.AreEqual(0, amqpNmsBytesMessageFacade.GetDataReader().Read(new byte[1], 0, 1));
            AssertDataBodyAsExpected(amqpNmsBytesMessageFacade, 0);
        }
Ejemplo n.º 6
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;
            });
        }
Ejemplo n.º 7
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));
        }
Ejemplo n.º 8
0
        public void TestHasBodyWithActiveInputStream()
        {
            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.GetDataReader();

            Assert.True(amqpNmsBytesMessageFacade.HasBody());
        }
Ejemplo n.º 9
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);
        }
Ejemplo n.º 10
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));
        }
Ejemplo n.º 11
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));
        }