Instead of returning MemoryStream, why don't you return just a Mock<Stream> and verify if the appropriate methods were called with the right data.
Something like:
var recievedData = new MemoryStream();
var mockStream = new Mock<Stream>(MockBehavior.Strict);
mockStream.Setup(s=>s.Write(It.IsAny<byte[]>(), It.IsAny<int>(), It.IsAny<int>())
.CallBack((byte[] buffer, int offset, int count) => receivedData.Write(buffer, offset, count)));
mockStream.Setup(s=>s.Close()).Verifialble();
... do your test here
mockStream.VerifyAll(); // to check close was called
...verify the data in recievedData
recievedData.Close();
Cheers,
Sunny