public void FullBufferTest() { var baseStream = new MemoryStream(); var source = Encoding.ASCII.GetBytes("hogefuga"); baseStream.Write(source, 0, source.Length); baseStream.Position = 0; var buffered = new ReadBufferedNetworkStream(baseStream, 4); var result = new byte[source.Length]; var readSize = buffered.Read(result, 0, result.Length); readSize.Is(4); result.Is(source.Take(4).Concat(Enumerable.Repeat(new byte(), 4)).ToArray()); var result2 = new byte[4]; var readSize2 = buffered.Read(result2, 0, result2.Length); readSize2.Is(4); result2.Is(source.Skip(4).Take(4).ToArray()); }
public void ReadTest() { var baseStream = new MemoryStream(); var source = Encoding.ASCII.GetBytes("hoge"); baseStream.Write(source, 0, source.Length); baseStream.Position = 0; var buffered = new ReadBufferedNetworkStream(baseStream); var tcsRead = new TaskCompletionSource <(byte[] buffer, int size)>(); buffered.ReadData += x => tcsRead.TrySetResult(x); var result = new byte[4]; buffered.Read(result, 0, result.Length); result.Is(source); tcsRead.GetResult().buffer.Is(source); baseStream.Position = 0; var source2 = Encoding.ASCII.GetBytes("fugapiyo"); baseStream.Write(source2, 0, source2.Length); baseStream.Position = 0; var result2 = new byte[4]; buffered.Read(result2, 0, result2.Length); result2.Is(source2.Take(4).ToArray()); buffered.Receive().IsTrue(); var result3 = new byte[4]; buffered.Read(result3, 0, result3.Length); result3.Is(source2.Skip(4).Take(4).ToArray()); }