public void Staging_bytes_makes_them_available_in_sync_read()
 {
     using (var stream = new LoopbackTcpStream())
     {
         stream.StageReadBytes(1, 2, 3);
         var buffer = new byte[10];
         stream.Read(buffer, 0, 3).Should().Be(3);
         buffer.Take(3).Should().Equal(1, 2, 3);
     }
 }
        public async Task Staging_bytes_makes_them_available_in_async_read()
        {
            using (var stream = new LoopbackTcpStream())
            {
                stream.StageReadBytes(1, 2, 3);
                var buffer    = new byte[10];
                var readBytes = await stream.ReadAsync(buffer, 0, 3).ConfigureAwait(true);

                readBytes.Should().Be(3);
                buffer.Take(3).Should().Equal(1, 2, 3);
            }
        }