public void TestReceivedBytesMessageThrowsMessageNotWriteableExceptionOnWriteBytes() { byte[] content = Encoding.UTF8.GetBytes("myBytes"); NmsTestBytesMessageFacade facade = new NmsTestBytesMessageFacade(content); NmsBytesMessage bytesMessage = new NmsBytesMessage(facade); bytesMessage.OnDispatch(); Assert.Throws <MessageNotWriteableException>(() => bytesMessage.WriteBytes(content)); }
public void TestClearBodyOnReceivedBytesMessageMakesMessageWritable() { byte[] content = Encoding.UTF8.GetBytes("myBytes"); NmsTestBytesMessageFacade facade = new NmsTestBytesMessageFacade(content); NmsBytesMessage bytesMessage = new NmsBytesMessage(facade); bytesMessage.OnDispatch(); Assert.True(bytesMessage.IsReadOnlyBody); bytesMessage.ClearBody(); Assert.False(bytesMessage.IsReadOnlyBody); }
public void TestClearBodyOnReceivedBytesMessageClearsFacadeInputStream() { byte[] content = Encoding.UTF8.GetBytes("myBytes"); NmsTestBytesMessageFacade facade = new NmsTestBytesMessageFacade(content); NmsBytesMessage bytesMessage = new NmsBytesMessage(facade); bytesMessage.OnDispatch(); Assert.True(facade.BodyLength > 0, "Expected message content but none was present"); Assert.AreEqual(1, facade.GetDataReader().Read(new byte[1], 0, 1), "Expected data from facade"); bytesMessage.ClearBody(); Assert.True(facade.BodyLength == 0, "Expected no message content from facade"); Assert.AreEqual(0, facade.GetDataReader().Read(new byte[1], 0, 1), "Expected no data from facade, but got some"); }
public void TestResetOnNewlyPopulatedBytesMessageResetsMarkerAndMakesReadable() { byte[] content = Encoding.UTF8.GetBytes("myBytes"); NmsTestBytesMessageFacade facade = new NmsTestBytesMessageFacade(content); NmsBytesMessage bytesMessage = new NmsBytesMessage(facade); Assert.False(bytesMessage.IsReadOnlyBody, "Message should be writable"); bytesMessage.WriteBytes(content); bytesMessage.Reset(); Assert.True(bytesMessage.IsReadOnlyBody, "Message should not be writable"); // retrieve the bytes, check they match byte[] resetBytes = new byte[content.Length]; bytesMessage.ReadBytes(resetBytes); CollectionAssert.AreEqual(content, resetBytes); }
public void TestReadBytesUsingReceivedMessageWithBodyReturnsBytes() { byte[] content = Encoding.UTF8.GetBytes("myBytes"); NmsTestBytesMessageFacade facade = new NmsTestBytesMessageFacade(content); NmsBytesMessage bytesMessage = new NmsBytesMessage(facade); bytesMessage.OnDispatch(); // retrieve the expected bytes, check they match byte[] receivedBytes = new byte[content.Length]; bytesMessage.ReadBytes(receivedBytes); CollectionAssert.AreEqual(content, receivedBytes); // verify no more bytes remain, i.e EOS Assert.AreEqual(0, bytesMessage.ReadBytes(new byte[1]), "Expected input stream to be at end but data was returned"); Assert.AreEqual(content.Length, bytesMessage.BodyLength); }
public void TestResetOnReceivedBytesMessageResetsMarker() { byte[] content = Encoding.UTF8.GetBytes("myBytes"); NmsTestBytesMessageFacade facade = new NmsTestBytesMessageFacade(content); NmsBytesMessage bytesMessage = new NmsBytesMessage(facade); bytesMessage.OnDispatch(); // retrieve a few bytes, check they match the first few expected bytes byte[] partialBytes = new byte[3]; bytesMessage.ReadBytes(partialBytes); byte[] partialOriginalBytes = content.Take(3).ToArray(); CollectionAssert.AreEqual(partialOriginalBytes, partialBytes); bytesMessage.Reset(); // retrieve all the expected bytes, check they match byte[] resetBytes = new byte[content.Length]; bytesMessage.ReadBytes(resetBytes); CollectionAssert.AreEqual(content, resetBytes); }
public void TestGetBodyLengthOnClearedReceivedMessageThrowsMessageNotReadableException() { byte[] content = Encoding.UTF8.GetBytes("myBytes"); NmsTestBytesMessageFacade facade = new NmsTestBytesMessageFacade(content); NmsBytesMessage bytesMessage = new NmsBytesMessage(facade); bytesMessage.OnDispatch(); Assert.AreEqual(content.Length, bytesMessage.BodyLength, "Unexpected message length"); bytesMessage.ClearBody(); try { long bodyLength = bytesMessage.BodyLength; Assert.Fail("expected exception to be thrown"); } catch (MessageNotReadableException) { // expected } }