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); }
public void TestGetOutputStreamThrowsJMSISEWhenFacadeBeingReadFrom() { AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateNewBytesMessageFacade(); amqpNmsBytesMessageFacade.GetDataReader(); Assert.Throws <IllegalStateException>(() => amqpNmsBytesMessageFacade.GetDataWriter()); }
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"); }
public void TestNewMessageDoesNotContainMessageTypeAnnotation() { AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateNewBytesMessageFacade(); Assert.IsNull(amqpNmsBytesMessageFacade.Message.MessageAnnotations); Assert.AreEqual(MessageSupport.JMS_TYPE_BYTE, amqpNmsBytesMessageFacade.JmsMsgType); }
public void TestGetOutputStreamReturnsSameStream() { AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateNewBytesMessageFacade(); BinaryReader binaryReader1 = amqpNmsBytesMessageFacade.GetDataReader(); BinaryReader binaryReader2 = amqpNmsBytesMessageFacade.GetDataReader(); Assert.AreSame(binaryReader1, binaryReader2); }
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); }
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)); }
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); }
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)); }
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); }
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"); }
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); }
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"); }
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()); }
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)); }
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; }); }
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); }
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()); }
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); }
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); }
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)); }
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)); }
public void TestHasBodyOnNewMessage() { AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateNewBytesMessageFacade(); Assert.False(amqpNmsBytesMessageFacade.HasBody()); }
public void TestGetBodyLengthUsingNewMessage() { AmqpNmsBytesMessageFacade amqpNmsBytesMessageFacade = CreateNewBytesMessageFacade(); Assert.AreEqual(0, amqpNmsBytesMessageFacade.BodyLength); }