diff options
Diffstat (limited to 'src/Http/Http.Extensions/test/SendFileResponseExtensionsTests.cs')
-rw-r--r-- | src/Http/Http.Extensions/test/SendFileResponseExtensionsTests.cs | 213 |
1 files changed, 106 insertions, 107 deletions
diff --git a/src/Http/Http.Extensions/test/SendFileResponseExtensionsTests.cs b/src/Http/Http.Extensions/test/SendFileResponseExtensionsTests.cs index 2e3ecdbddf..33871c97e0 100644 --- a/src/Http/Http.Extensions/test/SendFileResponseExtensionsTests.cs +++ b/src/Http/Http.Extensions/test/SendFileResponseExtensionsTests.cs @@ -9,137 +9,136 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Http.Features; using Xunit; -namespace Microsoft.AspNetCore.Http.Extensions.Tests +namespace Microsoft.AspNetCore.Http.Extensions.Tests; + +public class SendFileResponseExtensionsTests { - public class SendFileResponseExtensionsTests + [Fact] + public Task SendFileWhenFileNotFoundThrows() { - [Fact] - public Task SendFileWhenFileNotFoundThrows() - { - var response = new DefaultHttpContext().Response; - return Assert.ThrowsAsync<FileNotFoundException>(() => response.SendFileAsync("foo")); - } + var response = new DefaultHttpContext().Response; + return Assert.ThrowsAsync<FileNotFoundException>(() => response.SendFileAsync("foo")); + } - [Fact] - public async Task SendFileWorks() - { - var context = new DefaultHttpContext(); - var response = context.Response; - var fakeFeature = new FakeResponseBodyFeature(); - context.Features.Set<IHttpResponseBodyFeature>(fakeFeature); + [Fact] + public async Task SendFileWorks() + { + var context = new DefaultHttpContext(); + var response = context.Response; + var fakeFeature = new FakeResponseBodyFeature(); + context.Features.Set<IHttpResponseBodyFeature>(fakeFeature); - await response.SendFileAsync("bob", 1, 3, CancellationToken.None); + await response.SendFileAsync("bob", 1, 3, CancellationToken.None); - Assert.Equal("bob", fakeFeature.Name); - Assert.Equal(1, fakeFeature.Offset); - Assert.Equal(3, fakeFeature.Length); - Assert.Equal(CancellationToken.None, fakeFeature.Token); - } + Assert.Equal("bob", fakeFeature.Name); + Assert.Equal(1, fakeFeature.Offset); + Assert.Equal(3, fakeFeature.Length); + Assert.Equal(CancellationToken.None, fakeFeature.Token); + } - [Fact] - public async Task SendFile_FallsBackToBodyStream() - { - var body = new MemoryStream(); - var context = new DefaultHttpContext(); - var response = context.Response; - response.Body = body; + [Fact] + public async Task SendFile_FallsBackToBodyStream() + { + var body = new MemoryStream(); + var context = new DefaultHttpContext(); + var response = context.Response; + response.Body = body; - await response.SendFileAsync("testfile1kb.txt", 1, 3, CancellationToken.None); + await response.SendFileAsync("testfile1kb.txt", 1, 3, CancellationToken.None); - Assert.Equal(3, body.Length); - } + Assert.Equal(3, body.Length); + } - [Fact] - public async Task SendFile_Stream_ThrowsWhenCanceled() - { - var body = new MemoryStream(); - var context = new DefaultHttpContext(); - var response = context.Response; - response.Body = body; + [Fact] + public async Task SendFile_Stream_ThrowsWhenCanceled() + { + var body = new MemoryStream(); + var context = new DefaultHttpContext(); + var response = context.Response; + response.Body = body; - await Assert.ThrowsAnyAsync<OperationCanceledException>( - () => response.SendFileAsync("testfile1kb.txt", 1, 3, new CancellationToken(canceled: true))); + await Assert.ThrowsAnyAsync<OperationCanceledException>( + () => response.SendFileAsync("testfile1kb.txt", 1, 3, new CancellationToken(canceled: true))); - Assert.Equal(0, body.Length); - } + Assert.Equal(0, body.Length); + } - [Fact] - public async Task SendFile_Feature_ThrowsWhenCanceled() - { - var context = new DefaultHttpContext(); - var fakeFeature = new FakeResponseBodyFeature(); - context.Features.Set<IHttpResponseBodyFeature>(fakeFeature); - var response = context.Response; + [Fact] + public async Task SendFile_Feature_ThrowsWhenCanceled() + { + var context = new DefaultHttpContext(); + var fakeFeature = new FakeResponseBodyFeature(); + context.Features.Set<IHttpResponseBodyFeature>(fakeFeature); + var response = context.Response; - await Assert.ThrowsAsync<OperationCanceledException>( - () => response.SendFileAsync("testfile1kb.txt", 1, 3, new CancellationToken(canceled: true))); - } + await Assert.ThrowsAsync<OperationCanceledException>( + () => response.SendFileAsync("testfile1kb.txt", 1, 3, new CancellationToken(canceled: true))); + } - [Fact] - public async Task SendFile_Stream_AbortsSilentlyWhenRequestCanceled() - { - var body = new MemoryStream(); - var context = new DefaultHttpContext(); - context.RequestAborted = new CancellationToken(canceled: true); - var response = context.Response; - response.Body = body; + [Fact] + public async Task SendFile_Stream_AbortsSilentlyWhenRequestCanceled() + { + var body = new MemoryStream(); + var context = new DefaultHttpContext(); + context.RequestAborted = new CancellationToken(canceled: true); + var response = context.Response; + response.Body = body; + + await response.SendFileAsync("testfile1kb.txt", 1, 3, CancellationToken.None); + + Assert.Equal(0, body.Length); + } + + [Fact] + public async Task SendFile_Feature_AbortsSilentlyWhenRequestCanceled() + { + var context = new DefaultHttpContext(); + var fakeFeature = new FakeResponseBodyFeature(); + context.Features.Set<IHttpResponseBodyFeature>(fakeFeature); + var token = new CancellationToken(canceled: true); + context.RequestAborted = token; + var response = context.Response; - await response.SendFileAsync("testfile1kb.txt", 1, 3, CancellationToken.None); + await response.SendFileAsync("testfile1kb.txt", 1, 3, CancellationToken.None); - Assert.Equal(0, body.Length); + Assert.Equal(token, fakeFeature.Token); + } + + private class FakeResponseBodyFeature : IHttpResponseBodyFeature + { + public string Name { get; set; } = null; + public long Offset { get; set; } = 0; + public long? Length { get; set; } = null; + public CancellationToken Token { get; set; } + + public Stream Stream => throw new System.NotImplementedException(); + + public PipeWriter Writer => throw new System.NotImplementedException(); + + public Task CompleteAsync() + { + throw new System.NotImplementedException(); } - [Fact] - public async Task SendFile_Feature_AbortsSilentlyWhenRequestCanceled() + public void DisableBuffering() { - var context = new DefaultHttpContext(); - var fakeFeature = new FakeResponseBodyFeature(); - context.Features.Set<IHttpResponseBodyFeature>(fakeFeature); - var token = new CancellationToken(canceled: true); - context.RequestAborted = token; - var response = context.Response; + throw new System.NotImplementedException(); + } - await response.SendFileAsync("testfile1kb.txt", 1, 3, CancellationToken.None); + public Task SendFileAsync(string path, long offset, long? length, CancellationToken cancellation) + { + Name = path; + Offset = offset; + Length = length; + Token = cancellation; - Assert.Equal(token, fakeFeature.Token); + cancellation.ThrowIfCancellationRequested(); + return Task.FromResult(0); } - private class FakeResponseBodyFeature : IHttpResponseBodyFeature + public Task StartAsync(CancellationToken token = default) { - public string Name { get; set; } = null; - public long Offset { get; set; } = 0; - public long? Length { get; set; } = null; - public CancellationToken Token { get; set; } - - public Stream Stream => throw new System.NotImplementedException(); - - public PipeWriter Writer => throw new System.NotImplementedException(); - - public Task CompleteAsync() - { - throw new System.NotImplementedException(); - } - - public void DisableBuffering() - { - throw new System.NotImplementedException(); - } - - public Task SendFileAsync(string path, long offset, long? length, CancellationToken cancellation) - { - Name = path; - Offset = offset; - Length = length; - Token = cancellation; - - cancellation.ThrowIfCancellationRequested(); - return Task.FromResult(0); - } - - public Task StartAsync(CancellationToken token = default) - { - throw new System.NotImplementedException(); - } + throw new System.NotImplementedException(); } } } |