public void MultiBufferMemoryStreamReadSeekSetLengthTest() { byte[] outBuffer = new byte[2 * 1024 * 1024]; byte[] buffer = GetRandomBuffer(outBuffer.Length); using (MemoryStream memStream = new MemoryStream()) { memStream.Write(buffer, 0, buffer.Length); using (MultiBufferMemoryStream multiBufferStream = new MultiBufferMemoryStream(null /* bufferManager */)) { multiBufferStream.Write(buffer, 0, buffer.Length); multiBufferStream.Seek(0, SeekOrigin.Begin); TestHelper.AssertStreamsAreEqual(memStream, multiBufferStream); multiBufferStream.Read(outBuffer, 0, buffer.Length); TestHelper.AssertBuffersAreEqual(buffer, outBuffer); multiBufferStream.Seek(-1, SeekOrigin.End); Assert.AreEqual(buffer.Length - 1, multiBufferStream.Position); multiBufferStream.Seek(-1024, SeekOrigin.End); memStream.Seek(-1024, SeekOrigin.End); TestHelper.AssertStreamsAreEqual(multiBufferStream, memStream); multiBufferStream.SetLength(3 * 1024 * 1024); memStream.SetLength(3 * 1024 * 1024); multiBufferStream.Seek(0, SeekOrigin.Begin); memStream.Seek(0, SeekOrigin.Begin); TestHelper.AssertStreamsAreEqual(memStream, multiBufferStream); } } }