public void Dispose_IsImplemented_AsNoOp() { var resolver = new WebApiDependencyResolver(_fixture.Container); resolver.Dispose(); Assert.NotNull(resolver); }
public void BeginScope_ReturnsSameInstanceOfResolver() { var resolver = new WebApiDependencyResolver(_fixture.Container); var scope = resolver.BeginScope(); Assert.Equal(resolver, scope); }
public virtual void Configure(IAppBuilder owinApp) { if (owinApp == null) { throw new ArgumentNullException(nameof(owinApp)); } _webApiConfig = new HttpConfiguration(); _webApiConfig.SuppressHostPrincipal(); _webApiConfig.SetTimeZoneInfo(TimeZoneInfo.Utc); _webApiConfig.Formatters.Clear(); _webApiConfig.IncludeErrorDetailPolicy = AppEnvironment.DebugMode ? IncludeErrorDetailPolicy.LocalOnly : IncludeErrorDetailPolicy.Never; _webApiConfig.DependencyResolver = WebApiDependencyResolver; _webApiConfig.Services.Replace(typeof(IHttpControllerSelector), new DefaultODataHttpControllerSelector(_webApiConfig)); WebApiConfigurationCustomizers.ToList() .ForEach(webApiConfigurationCustomizer => { webApiConfigurationCustomizer.CustomizeWebApiConfiguration(_webApiConfig); }); _server = new HttpServer(_webApiConfig); _webApiConfig.UseCustomContainerBuilder(() => (IContainerBuilder)WebApiDependencyResolver.GetService(typeof(IContainerBuilder))); var odataModulesAndAssembliesGroups = ApiAssembliesProvider.GetApiAssemblies() .SelectMany(asm => { ODataModuleAttribute[] odataModuleAttributes = asm.GetCustomAttributes <ODataModuleAttribute>().ToArray(); return(odataModuleAttributes.Select(oma => new { ODataModule = oma, Assembly = asm })); }) .GroupBy(odataModuleAndAssembly => odataModuleAndAssembly.ODataModule.ODataRouteName); foreach (var odataModuleAndAssemblyGroup in odataModulesAndAssembliesGroups) { ODataModelBuilder modelBuilder = ODataModelBuilderProvider.GetODataModelBuilder(_webApiConfig, containerName: $"{odataModuleAndAssemblyGroup.Key}Context", @namespace: null); foreach (var odataModuleAndAssembly in odataModuleAndAssemblyGroup) { ODataModuleConfiguration.ConfigureODataModule(odataModuleAndAssemblyGroup.Key, odataModuleAndAssembly.Assembly, modelBuilder); } string routeName = $"{odataModuleAndAssemblyGroup.Key}-odata"; _odataBatchHandler = new DefaultODataBatchHandler(_server); _odataBatchHandler.MessageQuotas.MaxOperationsPerChangeset = int.MaxValue; _odataBatchHandler.MessageQuotas.MaxPartsPerBatch = int.MaxValue; _odataBatchHandler.MessageQuotas.MaxNestingDepth = int.MaxValue; _odataBatchHandler.MessageQuotas.MaxReceivedMessageSize = long.MaxValue; _odataBatchHandler.ODataRouteName = routeName; IEdmModel edmModel = modelBuilder.GetEdmModel(); _webApiConfig.MapODataServiceRoute(routeName, odataModuleAndAssemblyGroup.Key, builder => { builder.AddService(ServiceLifetime.Singleton, sp => edmModel); builder.AddService(ServiceLifetime.Singleton, sp => _odataBatchHandler); }); } owinApp.UseAutofacWebApi(_webApiConfig); WebApiOwinPipelineInjector.UseWebApi(owinApp, _server, _webApiConfig); _webApiConfig.EnsureInitialized(); }