public async Task ShouldErrorIfPrefaceWasNotReceivedUntilTimeout() { var timeout = 50; var pipe = new BufferedPipe(50); await Assert.ThrowsAsync <TimeoutException>( () => ClientPreface.ReadAsync(pipe, timeout).AsTask()); }
public async Task ShouldReadThePrefaceFromStream() { var buffer = new BufferReadStream(50, 50); Array.Copy(ClientPreface.Bytes, buffer.Buffer, ClientPreface.Length); buffer.Written = ClientPreface.Length; await ClientPreface.ReadAsync(buffer); }
public async Task ShouldErrorIfStreamEnds() { var buffer = new BufferReadStream(50, 50); Array.Copy(ClientPreface.Bytes, buffer.Buffer, ClientPreface.Length); buffer.Written = ClientPreface.Length - 1; // Miss one byte await Assert.ThrowsAsync <EndOfStreamException>( () => ClientPreface.ReadAsync(buffer).AsTask()); }
public async Task ShouldNotErrorIfPrefaceWasReceivedWithinTimeout() { var timeout = 200; var pipe = new BufferedPipe(50); var _ = Task.Run(async() => { await pipe.WriteAsync(new ArraySegment <byte>(ClientPreface.Bytes)); }); await ClientPreface.ReadAsync(pipe, timeout); }
public async Task ShouldErrorIfStreamDoesNotContainPreface() { var buffer = new BufferReadStream(50, 50); Array.Copy(ClientPreface.Bytes, buffer.Buffer, ClientPreface.Length); buffer.Buffer[22] = (byte)'l'; buffer.Written = ClientPreface.Length; var ex = await Assert.ThrowsAsync <Exception>( () => ClientPreface.ReadAsync(buffer).AsTask()); Assert.Equal("Invalid prefix received", ex.Message); }
public async Task ShouldErrorIfStreamWasClosedWithinTimeout() { var timeout = 200; var pipe = new BufferedPipe(50); var _ = Task.Run(async() => { await Task.Delay(10); await pipe.CloseAsync(); }); var ex = await Assert.ThrowsAsync <AggregateException>( () => ClientPreface.ReadAsync(pipe, timeout).AsTask()); Assert.IsType <EndOfStreamException>(ex.InnerException); }