public async Task EmptyBufferNotWrittenToStream() { Pipe.Writer.Complete(); var stream = new ThrowingStream(); await PipeReader.CopyToAsync(stream); PipeReader.Complete(); }
public async Task EmptyBufferNotWrittenToStream() { var pipe = new Pipe(s_testOptions); pipe.Writer.Complete(); var stream = new ThrowingStream(); await pipe.Reader.CopyToAsync(stream); pipe.Reader.Complete(); }
public async Task ThrowingFromStreamDoesNotLeavePipeReaderInBrokenState() { var stream = new ThrowingStream(); Task task = PipeReader.CopyToAsync(stream); Pipe.Writer.WriteEmpty(10); await Pipe.Writer.FlushAsync(); await Assert.ThrowsAsync <InvalidOperationException>(() => task); Pipe.Writer.WriteEmpty(10); await Pipe.Writer.FlushAsync(); Pipe.Writer.Complete(); var stream2 = new MemoryStream(); await PipeReader.CopyToAsync(stream2); Assert.Equal(20, stream2.Length); PipeReader.Complete(); }
public async Task ThrowingFromStreamDoesNotLeavePipeReaderInBrokenState() { var pipe = new Pipe(s_testOptions); var stream = new ThrowingStream(); Task task = pipe.Reader.CopyToAsync(stream); pipe.Writer.WriteEmpty(10); await pipe.Writer.FlushAsync(); await Assert.ThrowsAsync <InvalidOperationException>(() => task); pipe.Writer.WriteEmpty(10); await pipe.Writer.FlushAsync(); pipe.Writer.Complete(); ReadResult result = await pipe.Reader.ReadAsync(); Assert.True(result.IsCompleted); Assert.Equal(20, result.Buffer.Length); pipe.Reader.Complete(); }