diff options
Diffstat (limited to 'src/Http/Owin/test/OwinExtensionTests.cs')
-rw-r--r-- | src/Http/Owin/test/OwinExtensionTests.cs | 263 |
1 files changed, 131 insertions, 132 deletions
diff --git a/src/Http/Owin/test/OwinExtensionTests.cs b/src/Http/Owin/test/OwinExtensionTests.cs index 9bb1d3f038..ca6ea45ba8 100644 --- a/src/Http/Owin/test/OwinExtensionTests.cs +++ b/src/Http/Owin/test/OwinExtensionTests.cs @@ -10,154 +10,153 @@ using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; using Xunit; -namespace Microsoft.AspNetCore.Owin +namespace Microsoft.AspNetCore.Owin; + +using AddMiddleware = Action<Func< + Func<IDictionary<string, object>, Task>, + Func<IDictionary<string, object>, Task> + >>; +using AppFunc = Func<IDictionary<string, object>, Task>; +using CreateMiddleware = Func< + Func<IDictionary<string, object>, Task>, + Func<IDictionary<string, object>, Task> + >; + +public class OwinExtensionTests { - using AddMiddleware = Action<Func< - Func<IDictionary<string, object>, Task>, - Func<IDictionary<string, object>, Task> - >>; - using AppFunc = Func<IDictionary<string, object>, Task>; - using CreateMiddleware = Func< - Func<IDictionary<string, object>, Task>, - Func<IDictionary<string, object>, Task> - >; - - public class OwinExtensionTests + static readonly AppFunc notFound = env => new Task(() => { env["owin.ResponseStatusCode"] = 404; }); + + [Fact] + public async Task OwinConfigureServiceProviderAddsServices() { - static readonly AppFunc notFound = env => new Task(() => { env["owin.ResponseStatusCode"] = 404; }); + var list = new List<CreateMiddleware>(); + AddMiddleware build = list.Add; + IServiceProvider serviceProvider = null; + FakeService fakeService = null; - [Fact] - public async Task OwinConfigureServiceProviderAddsServices() + var builder = build.UseBuilder(applicationBuilder => { - var list = new List<CreateMiddleware>(); - AddMiddleware build = list.Add; - IServiceProvider serviceProvider = null; - FakeService fakeService = null; - - var builder = build.UseBuilder(applicationBuilder => + serviceProvider = applicationBuilder.ApplicationServices; + applicationBuilder.Run(context => { - serviceProvider = applicationBuilder.ApplicationServices; - applicationBuilder.Run(context => - { - fakeService = context.RequestServices.GetService<FakeService>(); - return Task.FromResult(0); - }); - }, - new ServiceCollection().AddSingleton(new FakeService()).BuildServiceProvider()); - - list.Reverse(); - await list - .Aggregate(notFound, (next, middleware) => middleware(next)) - .Invoke(new Dictionary<string, object>()); - - Assert.NotNull(serviceProvider); - Assert.NotNull(serviceProvider.GetService<FakeService>()); - Assert.NotNull(fakeService); - } - - [Fact] - public async Task OwinDefaultNoServices() + fakeService = context.RequestServices.GetService<FakeService>(); + return Task.FromResult(0); + }); + }, + new ServiceCollection().AddSingleton(new FakeService()).BuildServiceProvider()); + + list.Reverse(); + await list + .Aggregate(notFound, (next, middleware) => middleware(next)) + .Invoke(new Dictionary<string, object>()); + + Assert.NotNull(serviceProvider); + Assert.NotNull(serviceProvider.GetService<FakeService>()); + Assert.NotNull(fakeService); + } + + [Fact] + public async Task OwinDefaultNoServices() + { + var list = new List<CreateMiddleware>(); + AddMiddleware build = list.Add; + IServiceProvider expectedServiceProvider = new ServiceCollection().BuildServiceProvider(); + IServiceProvider serviceProvider = null; + FakeService fakeService = null; + bool builderExecuted = false; + bool applicationExecuted = false; + + var builder = build.UseBuilder(applicationBuilder => { - var list = new List<CreateMiddleware>(); - AddMiddleware build = list.Add; - IServiceProvider expectedServiceProvider = new ServiceCollection().BuildServiceProvider(); - IServiceProvider serviceProvider = null; - FakeService fakeService = null; - bool builderExecuted = false; - bool applicationExecuted = false; - - var builder = build.UseBuilder(applicationBuilder => + builderExecuted = true; + serviceProvider = applicationBuilder.ApplicationServices; + applicationBuilder.Run(context => { - builderExecuted = true; - serviceProvider = applicationBuilder.ApplicationServices; - applicationBuilder.Run(context => - { - applicationExecuted = true; - fakeService = context.RequestServices.GetService<FakeService>(); - return Task.FromResult(0); - }); - }, - expectedServiceProvider); - - list.Reverse(); - await list - .Aggregate(notFound, (next, middleware) => middleware(next)) - .Invoke(new Dictionary<string, object>()); - - Assert.True(builderExecuted); - Assert.Equal(expectedServiceProvider, serviceProvider); - Assert.True(applicationExecuted); - Assert.Null(fakeService); - } - - [Fact] - public async Task OwinDefaultNullServiceProvider() + applicationExecuted = true; + fakeService = context.RequestServices.GetService<FakeService>(); + return Task.FromResult(0); + }); + }, + expectedServiceProvider); + + list.Reverse(); + await list + .Aggregate(notFound, (next, middleware) => middleware(next)) + .Invoke(new Dictionary<string, object>()); + + Assert.True(builderExecuted); + Assert.Equal(expectedServiceProvider, serviceProvider); + Assert.True(applicationExecuted); + Assert.Null(fakeService); + } + + [Fact] + public async Task OwinDefaultNullServiceProvider() + { + var list = new List<CreateMiddleware>(); + AddMiddleware build = list.Add; + IServiceProvider serviceProvider = null; + FakeService fakeService = null; + bool builderExecuted = false; + bool applicationExecuted = false; + + var builder = build.UseBuilder(applicationBuilder => { - var list = new List<CreateMiddleware>(); - AddMiddleware build = list.Add; - IServiceProvider serviceProvider = null; - FakeService fakeService = null; - bool builderExecuted = false; - bool applicationExecuted = false; - - var builder = build.UseBuilder(applicationBuilder => + builderExecuted = true; + serviceProvider = applicationBuilder.ApplicationServices; + applicationBuilder.Run(context => { - builderExecuted = true; - serviceProvider = applicationBuilder.ApplicationServices; - applicationBuilder.Run(context => - { - applicationExecuted = true; - fakeService = context.RequestServices.GetService<FakeService>(); - return Task.FromResult(0); - }); + applicationExecuted = true; + fakeService = context.RequestServices.GetService<FakeService>(); + return Task.FromResult(0); }); + }); - list.Reverse(); - await list - .Aggregate(notFound, (next, middleware) => middleware(next)) - .Invoke(new Dictionary<string, object>()); + list.Reverse(); + await list + .Aggregate(notFound, (next, middleware) => middleware(next)) + .Invoke(new Dictionary<string, object>()); - Assert.True(builderExecuted); - Assert.NotNull(serviceProvider); - Assert.True(applicationExecuted); - Assert.Null(fakeService); - } + Assert.True(builderExecuted); + Assert.NotNull(serviceProvider); + Assert.True(applicationExecuted); + Assert.Null(fakeService); + } - [Fact] - public async Task UseOwin() - { - var serviceProvider = new ServiceCollection().BuildServiceProvider(); - var builder = new ApplicationBuilder(serviceProvider); - IDictionary<string, object> environment = null; - var context = new DefaultHttpContext(); + [Fact] + public async Task UseOwin() + { + var serviceProvider = new ServiceCollection().BuildServiceProvider(); + var builder = new ApplicationBuilder(serviceProvider); + IDictionary<string, object> environment = null; + var context = new DefaultHttpContext(); - builder.UseOwin(addToPipeline => + builder.UseOwin(addToPipeline => + { + addToPipeline(next => { - addToPipeline(next => + Assert.NotNull(next); + return async env => { - Assert.NotNull(next); - return async env => - { - environment = env; - await next(env); - }; - }); + environment = env; + await next(env); + }; }); - await builder.Build().Invoke(context); - - // Dictionary contains context but does not contain "websocket.Accept" or "websocket.AcceptAlt" keys. - Assert.NotNull(environment); - var value = Assert.Single( - environment, - kvp => string.Equals(typeof(HttpContext).FullName, kvp.Key, StringComparison.Ordinal)) - .Value; - Assert.Equal(context, value); - Assert.False(environment.ContainsKey("websocket.Accept")); - Assert.False(environment.ContainsKey("websocket.AcceptAlt")); - } - - private class FakeService - { - } + }); + await builder.Build().Invoke(context); + + // Dictionary contains context but does not contain "websocket.Accept" or "websocket.AcceptAlt" keys. + Assert.NotNull(environment); + var value = Assert.Single( + environment, + kvp => string.Equals(typeof(HttpContext).FullName, kvp.Key, StringComparison.Ordinal)) + .Value; + Assert.Equal(context, value); + Assert.False(environment.ContainsKey("websocket.Accept")); + Assert.False(environment.ContainsKey("websocket.AcceptAlt")); + } + + private class FakeService + { } } |