public async Task Copy_DoNothingWhenNoSegments() { var segments = new List <byte[]>(); var receivedSegments = new List <byte[]>(); var body = new CachedResponseBody(segments, 0); var pipe = new Pipe(); using var cts = new CancellationTokenSource(_timeout); var receiverTask = ReceiveDataAsync(pipe.Reader, receivedSegments, cts.Token); var copyTask = body.CopyToAsync(pipe.Writer, cts.Token).ContinueWith(_ => pipe.Writer.CompleteAsync()); await Task.WhenAll(receiverTask, copyTask); Assert.Empty(receivedSegments); }
static async Task CopyDataAsync(CachedResponseBody body, PipeWriter writer, CancellationToken cancellationToken) { await body.CopyToAsync(writer, cancellationToken); await writer.CompleteAsync(); }