public async Task Should_Read_Stream_Normally_If_Data_Gets_By_Parts(byte[] inputBytes) { //Arrange var stream = new EmulateNetworkBehaviorStream(); _ = Task.Run(async() => { foreach (var inputByte in inputBytes) { await stream.WriteAsync(new[] { inputByte }, CancellationToken.None).ConfigureAwait(false); await stream.FlushAsync(CancellationToken.None).ConfigureAwait(false); await Task.Delay(TimeSpan.FromMilliseconds(200)).ConfigureAwait(false); } }); //Act var result = await stream.ReadPacketAsync(inputBytes.Length, CancellationToken.None).ConfigureAwait(false); //Assert Assert.Equal(inputBytes, result); }