public void ReadsMessage() { MemoryStream inputStream = new MemoryStream(); MessageReader messageReader = new MessageReader( inputStream, this.messageSerializer); // Write a message to the stream byte[] messageBuffer = this.GetMessageBytes(TestEventString); inputStream.Write( this.GetMessageBytes(TestEventString), 0, messageBuffer.Length); inputStream.Flush(); inputStream.Seek(0, SeekOrigin.Begin); Message messageResult = messageReader.ReadMessage().Result; Assert.Equal("testEvent", messageResult.Method); inputStream.Dispose(); }
public void ReadsManyBufferedMessages() { MemoryStream inputStream = new MemoryStream(); MessageReader messageReader = new MessageReader( inputStream, this.messageSerializer); // Get a message to use for writing to the stream byte[] messageBuffer = this.GetMessageBytes(TestEventString); // How many messages of this size should we write to overflow the buffer? int overflowMessageCount = (int)Math.Ceiling( (MessageReader.DefaultBufferSize * 1.5) / messageBuffer.Length); // Write the necessary number of messages to the stream for (int i = 0; i < overflowMessageCount; i++) { inputStream.Write(messageBuffer, 0, messageBuffer.Length); } inputStream.Flush(); inputStream.Seek(0, SeekOrigin.Begin); // Read the written messages from the stream for (int i = 0; i < overflowMessageCount; i++) { Message messageResult = messageReader.ReadMessage().Result; Assert.Equal("testEvent", messageResult.Method); } inputStream.Dispose(); }
public void ReaderResizesBufferForLargeMessages() { MemoryStream inputStream = new MemoryStream(); MessageReader messageReader = new MessageReader( inputStream, this.messageSerializer); // Get a message with content so large that the buffer will need // to be resized to fit it all. byte[] messageBuffer = this.GetMessageBytes( string.Format( TestEventFormatString, new String('X', (int)(MessageReader.DefaultBufferSize * 3)))); inputStream.Write(messageBuffer, 0, messageBuffer.Length); inputStream.Flush(); inputStream.Seek(0, SeekOrigin.Begin); Message messageResult = messageReader.ReadMessage().Result; Assert.Equal("testEvent", messageResult.Method); inputStream.Dispose(); }