public void ConfigureMustConfigureCorsMiddlewareWithAllowAnyPolicyWhenEnvironmentIsProduction() { IConfiguration configuration = new ConfigurationFactory().Create(); IServiceCollection services = new ServiceCollection(); IWebHostEnvironment environment = new FakeHostingEnvironment { EnvironmentName = "Production" }; StubStartup startup = new StubStartup(configuration, environment); startup.ConfigureServices(services); DiagnosticListener listener = new DiagnosticListener("Test"); services.AddSingleton(listener); services.AddSingleton <DiagnosticSource>(listener); services.AddSingleton(environment); IApplicationBuilder app = new ApplicationBuilder(services.BuildServiceProvider()); startup.Configure(app, environment); List <Func <RequestDelegate, RequestDelegate> > delegates = ReflectionHelper.GetFieldOrDefault(app, "_components") as List <Func <RequestDelegate, RequestDelegate> >; Assert.NotNull(delegates); Func <RequestDelegate, RequestDelegate> cors = delegates.FirstOrDefault(x => (ReflectionHelper.GetFieldOrDefault(x.Target, "middleware") as Type)?.Name == "CorsMiddleware"); Assert.NotNull(cors); object[] args = ReflectionHelper.GetFieldOrDefault(cors.Target, "args") as object[]; Assert.NotNull(args); Assert.Contains(args, x => Equals(x, "AllowAnyPolicy")); }
public void ConfigureMustConfigureSwaggerUIMiddlewareWhenCalled() { IConfiguration configuration = new ConfigurationFactory().Create(); IServiceCollection services = new ServiceCollection(); IWebHostEnvironment environment = new FakeHostingEnvironment(); StubStartup startup = new StubStartup(configuration, environment); startup.ConfigureServices(services); DiagnosticListener listener = new DiagnosticListener("Test"); services.AddSingleton(listener); services.AddSingleton <DiagnosticSource>(listener); services.AddSingleton(environment); IApplicationBuilder app = new ApplicationBuilder(services.BuildServiceProvider()); startup.Configure(app, environment); List <Func <RequestDelegate, RequestDelegate> > delegates = ReflectionHelper.GetFieldOrDefault(app, "_components") as List <Func <RequestDelegate, RequestDelegate> >; Assert.NotNull(delegates); Func <RequestDelegate, RequestDelegate> requestDelegate = delegates.FirstOrDefault(x => ReflectionHelper.GetFieldOrDefault(x.Target, "middleware") as Type == typeof(SwaggerUIMiddleware)); Assert.NotNull(requestDelegate); object[] args = ReflectionHelper.GetFieldOrDefault(requestDelegate.Target, "args") as object[]; Assert.NotNull(args); SwaggerUIOptions options = args.FirstOrDefault(x => x is SwaggerUIOptions) as SwaggerUIOptions; Assert.NotNull(options); UrlDescriptor descriptor = options.ConfigObject.Urls.FirstOrDefault(y => y.Url == "/swagger/v1/swagger.json"); Assert.NotNull(descriptor); Assert.Equal("testhost API V1", descriptor.Name); }
public void ConfigureMustNotConfigureHstsWhenEnvironmentIsNotProduction() { IConfiguration configuration = new ConfigurationFactory().Create(); IServiceCollection services = new ServiceCollection(); IWebHostEnvironment environment = new FakeHostingEnvironment(); StubStartup startup = new StubStartup(configuration, environment); startup.ConfigureServices(services); DiagnosticListener listener = new DiagnosticListener("Test"); services.AddSingleton(listener); services.AddSingleton <DiagnosticSource>(listener); services.AddSingleton(environment); IApplicationBuilder app = new ApplicationBuilder(services.BuildServiceProvider()); startup.Configure(app, environment); List <Func <RequestDelegate, RequestDelegate> > delegates = ReflectionHelper.GetFieldOrDefault(app, "_components") as List <Func <RequestDelegate, RequestDelegate> >; Assert.NotNull(delegates); Assert.Null(delegates.FirstOrDefault(x => (ReflectionHelper.GetFieldOrDefault(x.Target, "middleware") as Type)?.Name == "HstsMiddleware")); }
public void ConfigureMustConfigureHealthCheckRouteWhenCalled() { IConfiguration configuration = new ConfigurationFactory().Create(); IServiceCollection services = new ServiceCollection(); IWebHostEnvironment environment = new FakeHostingEnvironment(); StubStartup startup = new StubStartup(configuration, environment); startup.ConfigureServices(services); DiagnosticListener listener = new DiagnosticListener("Test"); services.AddSingleton(listener); services.AddSingleton <DiagnosticSource>(listener); services.AddSingleton(environment); IApplicationBuilder app = new ApplicationBuilder(services.BuildServiceProvider()); startup.Configure(app, environment); object property = app.Properties["__EndpointRouteBuilder"]; Assert.NotNull(property); List <EndpointDataSource> dataSources = ReflectionHelper.GetProperty <List <EndpointDataSource> >(property, "DataSources"); Assert.NotNull(dataSources.FirstOrDefault(x => x.Endpoints.Any(y => (y as RouteEndpoint)?.RoutePattern.RawText == "/health"))); }