public void Clear()
{
_bytesEnqueued = 0;
_bytesTransferred = 0;
_bytesLeftToSend = 0;
if (!ReferenceEquals(_bodyStream, _internalStream))
{
//bodyStream is null for channels that connected
//but never sent a message.
if (_bodyStream != null)
_bodyStream.Close();
_bodyStream = null;
}
else
_internalStream.SetLength(0);
_headerIsSent = false;
_headerSize = 0;
_message = null;
}
public void can_clear_even_without_shit_being_used() { var serializer = new StringSerializer(); var slice = new BufferSlice(new byte[65535], 0, 65535); var msg = "Hello world"; var buffer = new SocketBufferFake(); var sut = new MicroMessageEncoder(serializer, slice); sut.Clear(); sut.Prepare(msg); sut.Send(buffer); var field = sut.GetType().GetField("_bodyStream", BindingFlags.Instance | BindingFlags.NonPublic); ((Stream)field.GetValue(sut)).CanWrite.Should().BeTrue(); }