Пример #1
0
 public async Task ShouldErrorIfPrefaceWasNotReceivedUntilTimeout()
 {
     var timeout = 50;
     var pipe    = new BufferedPipe(50);
     await Assert.ThrowsAsync <TimeoutException>(
         () => ClientPreface.ReadAsync(pipe, timeout).AsTask());
 }
Пример #2
0
        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);
        }
Пример #3
0
        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());
        }
Пример #4
0
 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);
 }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }