public void BuildActionModels_BaseAuthorizeFiltersAreStillValidWhenOverriden() { // Arrange var options = new TestOptionsManager<AuthorizationOptions>(); options.Value.AddPolicy("Base", policy => policy.RequireClaim("Basic").RequireClaim("Basic2")); options.Value.AddPolicy("Derived", policy => policy.RequireClaim("Derived")); var provider = new AuthorizationApplicationModelProvider(options); var defaultProvider = new DefaultApplicationModelProvider(new TestOptionsManager<MvcOptions>()); var context = new ApplicationModelProviderContext(new[] { typeof(DerivedController).GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act provider.OnProvidersExecuting(context); // Assert var controller = Assert.Single(context.Result.Controllers); var action = Assert.Single(controller.Actions); Assert.Equal("Authorize", action.ActionName); Assert.Null(action.AttributeRouteModel); var authorizeFilters = action.Filters.OfType<AuthorizeFilter>(); Assert.Single(authorizeFilters); Assert.Equal(3, authorizeFilters.First().Policy.Requirements.Count); }
private static ApplicationModelProviderContext GetProviderContext(Type controllerType) { var context = new ApplicationModelProviderContext(new[] { controllerType.GetTypeInfo() }); var provider = new DefaultApplicationModelProvider( Options.Create(new MvcOptions()), new EmptyModelMetadataProvider()); provider.OnProvidersExecuting(context); return(context); }
private static ApplicationModelProviderContext GetContext( Type type, IModelMetadataProvider modelMetadataProvider = null) { var context = new ApplicationModelProviderContext(new[] { type.GetTypeInfo() }); var mvcOptions = Options.Create(new MvcOptions()); modelMetadataProvider = modelMetadataProvider ?? new EmptyModelMetadataProvider(); var convention = new DefaultApplicationModelProvider(mvcOptions, modelMetadataProvider); convention.OnProvidersExecuting(context); return(context); }
public void CreateControllerModel_EnableCorsAttributeAddsCorsAuthorizationFilterFactory() { // Arrange var corsProvider = new CorsApplicationModelProvider(); var defaultProvider = new DefaultApplicationModelProvider(new MockMvcOptionsAccessor()); var context = new ApplicationModelProviderContext(new [] { typeof(CorsController).GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act corsProvider.OnProvidersExecuting(context); // Assert var model = Assert.Single(context.Result.Controllers); Assert.Single(model.Filters, f => f is CorsAuthorizationFilterFactory); }
public void CreateControllerModel_AuthorizeAttributeAddsAuthorizeFilter() { // Arrange var provider = new AuthorizationApplicationModelProvider(new TestOptionsManager<AuthorizationOptions>()); var defaultProvider = new DefaultApplicationModelProvider(new TestOptionsManager<MvcOptions>()); var context = new ApplicationModelProviderContext(new[] { typeof(AccountController).GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act provider.OnProvidersExecuting(context); // Assert var controller = Assert.Single(context.Result.Controllers); Assert.Single(controller.Filters, f => f is AuthorizeFilter); }
public void DoesNotInitializeFilterFactory_ThrowsInvalidOperationException_NonPrimitiveType() { // Arrange var provider = new TempDataApplicationModelProvider(); var defaultProvider = new DefaultApplicationModelProvider(Options.Create(new MvcOptions())); var context = new ApplicationModelProviderContext(new[] { typeof(TestController_OneValid_OneInvalidProperty).GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act var exception = Assert.Throws <InvalidOperationException>(() => provider.OnProvidersExecuting(context)); Assert.Equal($"The '{typeof(TestController_OneValid_OneInvalidProperty).FullName}.{nameof(TestController_OneValid_OneInvalidProperty.Test2)}' property with {nameof(TempDataAttribute)} is invalid. A property using {nameof(TempDataAttribute)} must be a primitive or string type.", exception.Message); }
public void ThrowsInvalidOperationException_NonPrimitiveType() { // Arrange var provider = new TempDataApplicationModelProvider(); var defaultProvider = new DefaultApplicationModelProvider(new TestOptionsManager <MvcOptions>()); var context = new ApplicationModelProviderContext(new[] { typeof(TestController_NonPrimitiveType).GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act & Assert var exception = Assert.Throws <InvalidOperationException>(() => provider.OnProvidersExecuting(context)); Assert.Equal($"The '{typeof(TestController_NonPrimitiveType).FullName}.{nameof(TestController_NonPrimitiveType.Test)}' property with {nameof(TempDataAttribute)} is invalid. A property using {nameof(TempDataAttribute)} must be of primitive or string type.", exception.Message); }
public void CreateControllerModel_DisableCorsAttributeAddsDisableCorsAuthorizationFilter() { // Arrange var corsProvider = new CorsApplicationModelProvider(); var defaultProvider = new DefaultApplicationModelProvider(new TestOptionsManager<MvcOptions>()); var context = new ApplicationModelProviderContext(new[] { typeof(DisableCorsController).GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act corsProvider.OnProvidersExecuting(context); // Assert var model = Assert.Single(context.Result.Controllers); Assert.Single(model.Filters, f => f is DisableCorsAuthorizationFilter); }
public void BuildActionModel_DisableCorsAttributeAddsDisableCorsAuthorizationFilter() { // Arrange var corsProvider = new CorsApplicationModelProvider(); var defaultProvider = new DefaultApplicationModelProvider(new MockMvcOptionsAccessor()); var context = new ApplicationModelProviderContext(new[] { typeof(DisableCorsActionController).GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act corsProvider.OnProvidersExecuting(context); // Assert var controller = Assert.Single(context.Result.Controllers); var action = Assert.Single(controller.Actions); Assert.True(action.Filters.Any(f => f is DisableCorsAuthorizationFilter)); }
public void BuildActionModel_EnableCorsAttributeAddsCorsAuthorizationFilterFactory() { // Arrange var corsProvider = new CorsApplicationModelProvider(); var defaultProvider = new DefaultApplicationModelProvider(new TestOptionsManager<MvcOptions>()); var context = new ApplicationModelProviderContext(new[] { typeof(EnableCorsController).GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act corsProvider.OnProvidersExecuting(context); // Assert var controller = Assert.Single(context.Result.Controllers); var action = Assert.Single(controller.Actions); Assert.Single(action.Filters, f => f is CorsAuthorizationFilterFactory); }
public void AddsTempDataPropertyFilter_ForTempDataAttributeProperties(Type type) { // Arrange var provider = new TempDataApplicationModelProvider(); var defaultProvider = new DefaultApplicationModelProvider(new TestOptionsManager <MvcOptions>()); var context = new ApplicationModelProviderContext(new[] { type.GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act provider.OnProvidersExecuting(context); // Assert var controller = Assert.Single(context.Result.Controllers); Assert.Single(controller.Filters, f => f is ControllerSaveTempDataPropertyFilterFactory); }
public void OnProvidersExecuting_ValidatesTempDataProperties() { // Arrange var type = typeof(TestController_PrivateSet); var options = Options.Create(new MvcViewOptions()); var provider = new TempDataApplicationModelProvider(options); var expected = $"The '{type.FullName}.Test' property with TempDataAttribute is invalid. A property using TempDataAttribute must have a public getter and setter."; var defaultProvider = new DefaultApplicationModelProvider(Options.Create(new MvcOptions())); var context = new ApplicationModelProviderContext(new[] { type.GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act & Assert var ex = Assert.Throws <InvalidOperationException>(() => provider.OnProvidersExecuting(context)); Assert.Equal(expected, ex.Message); }
public void CreateControllerModel_DisableCorsAttributeAddsDisableCorsAuthorizationFilter() { // Arrange var corsProvider = new CorsApplicationModelProvider(); var defaultProvider = new DefaultApplicationModelProvider(new TestOptionsManager <MvcOptions>()); var context = new ApplicationModelProviderContext(new[] { typeof(DisableCorsController).GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act corsProvider.OnProvidersExecuting(context); // Assert var model = Assert.Single(context.Result.Controllers); Assert.Single(model.Filters, f => f is DisableCorsAuthorizationFilter); }
public void ThrowsInvalidOperationException_ForNullableNonPrimitiveType() { // Arrange var provider = new TempDataApplicationModelProvider(); var defaultProvider = new DefaultApplicationModelProvider(Options.Create(new MvcOptions())); var controllerType = typeof(TestController_NullableNonPrimitiveTempDataProperty); var context = new ApplicationModelProviderContext(new[] { controllerType.GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act & Assert var exception = Assert.Throws <InvalidOperationException>(() => provider.OnProvidersExecuting(context)); Assert.Equal($"The '{controllerType.FullName}.{nameof(TestController_NullableNonPrimitiveTempDataProperty.DateTime)}'" + $" property with {nameof(TempDataAttribute)} is invalid. A property using {nameof(TempDataAttribute)} " + $"must be a primitive or string type.", exception.Message); }
public void OnProvidersExecuting_SucceedsWithGeneralAttributeAndValidMetadata_IncludingBodyType() { // Arrange var provider = new TestMetadataProvider(ValidMetadata); var context = new ApplicationModelProviderContext(new[] { typeof(JsonGeneralController).GetTypeInfo() }); var defaultProvider = new DefaultApplicationModelProvider(Options.Create(new MvcOptions())); defaultProvider.OnProvidersExecuting(context); // Act provider.OnProvidersExecuting(context); // Assert var controllerModel = Assert.Single(context.Result.Controllers); var actionModel = Assert.Single(controllerModel.Actions); Assert.Collection(actionModel.Properties.OrderBy(kvp => ((Type)kvp.Key).Name), kvp => { Assert.Equal(typeof(IWebHookBodyTypeMetadata), kvp.Key); var attribute = Assert.IsAssignableFrom <GeneralWebHookAttribute>(kvp.Value); Assert.Equal(WebHookBodyType.Json, attribute.BodyType); }, kvp => { Assert.Equal(typeof(IWebHookBodyTypeMetadataService), kvp.Key); Assert.IsAssignableFrom <IReadOnlyList <IWebHookBodyTypeMetadataService> >(kvp.Value); }, kvp => { Assert.Equal(typeof(IWebHookEventMetadata), kvp.Key); Assert.IsAssignableFrom <IReadOnlyList <IWebHookEventMetadata> >(kvp.Value); }, kvp => { Assert.Equal(typeof(IWebHookEventSelectorMetadata), kvp.Key); Assert.IsAssignableFrom <GeneralWebHookAttribute>(kvp.Value); }, kvp => { Assert.Equal(typeof(IWebHookPingRequestMetadata), kvp.Key); Assert.IsAssignableFrom <IReadOnlyList <IWebHookPingRequestMetadata> >(kvp.Value); }); }
private ControllerActionDescriptorProvider GetActionDescriptorProvider() { var controllerTypes = typeof(DefaultActionSelectorTests) .GetNestedTypes(BindingFlags.NonPublic) .Select(t => t.GetTypeInfo()) .ToList(); var options = new TestOptionsManager <MvcOptions>(); var controllerTypeProvider = new StaticControllerTypeProvider(controllerTypes); var modelProvider = new DefaultApplicationModelProvider(options); var provider = new ControllerActionDescriptorProvider( controllerTypeProvider, new[] { modelProvider }, options); return(provider); }
private ControllerActionDescriptorProvider GetActionDescriptorProvider() { var controllerTypes = typeof(ActionSelectorTest) .GetNestedTypes(BindingFlags.NonPublic) .Select(t => t.GetTypeInfo()) .ToList(); var options = Options.Create(new MvcOptions()); var manager = GetApplicationManager(controllerTypes); var modelProvider = new DefaultApplicationModelProvider(options, new EmptyModelMetadataProvider()); var provider = new ControllerActionDescriptorProvider( manager, new ApplicationModelFactory(new[] { modelProvider }, options)); return(provider); }
public void BuildActionModel_EnableCorsAttributeAddsCorsAuthorizationFilterFactory() { // Arrange var corsProvider = new CorsApplicationModelProvider(); var defaultProvider = new DefaultApplicationModelProvider(new TestOptionsManager <MvcOptions>()); var context = new ApplicationModelProviderContext(new[] { typeof(EnableCorsController).GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act corsProvider.OnProvidersExecuting(context); // Assert var controller = Assert.Single(context.Result.Controllers); var action = Assert.Single(controller.Actions); Assert.Single(action.Filters, f => f is CorsAuthorizationFilterFactory); }
public void ThrowsInvalidOperationException_NonPrimitiveType() { // Arrange var provider = new TempDataApplicationModelProvider(); var defaultProvider = new DefaultApplicationModelProvider(Options.Create(new MvcOptions())); var context = new ApplicationModelProviderContext(new[] { typeof(TestController_NonPrimitiveType).GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act & Assert var exception = Assert.Throws <InvalidOperationException>(() => provider.OnProvidersExecuting(context)); Assert.Equal( $"The '{typeof(TestController_NonPrimitiveType).FullName}.{nameof(TestController_NonPrimitiveType.Test)}'" + $" property with {nameof(TempDataAttribute)} is invalid. The '{typeof(TempDataSerializer).FullName}'" + $" cannot serialize an object of type '{typeof(Object).FullName}'.", exception.Message); }
public void ThrowsInvalidOperationException_PrivateSetter() { // Arrange var provider = new TempDataApplicationModelProvider(); var defaultProvider = new DefaultApplicationModelProvider(Options.Create(new MvcOptions())); var context = new ApplicationModelProviderContext(new[] { typeof(TestController_PrivateSet).GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act & Assert var exception = Assert.Throws <InvalidOperationException>(() => provider.OnProvidersExecuting(context)); Assert.Equal( $"The '{typeof(TestController_PrivateSet).FullName}.{nameof(TestController_NonPrimitiveType.Test)}'" + $" property with {nameof(TempDataAttribute)} is invalid. A property using {nameof(TempDataAttribute)}" + " must have a public getter and setter.", exception.Message); }
public void AddsTempDataPropertyFilter_ForTempDataAttributeProperties() { // Arrange var type = typeof(TestController_NullableNonPrimitiveTempDataProperty); var options = Options.Create(new MvcViewOptions()); var provider = new TempDataApplicationModelProvider(options); var defaultProvider = new DefaultApplicationModelProvider(Options.Create(new MvcOptions())); var context = new ApplicationModelProviderContext(new[] { type.GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act provider.OnProvidersExecuting(context); // Assert var controller = Assert.Single(context.Result.Controllers); Assert.IsType <ControllerSaveTempDataPropertyFilterFactory>(Assert.Single(controller.Filters)); }
public void OnProvidersExecuting_DoesNotAddFilter_IfTypeHasNoTempDataProperties() { // Arrange var type = typeof(TestController_NoTempDataProperties); var options = Options.Create(new MvcViewOptions()); var provider = new TempDataApplicationModelProvider(options); var defaultProvider = new DefaultApplicationModelProvider(Options.Create(new MvcOptions())); var context = new ApplicationModelProviderContext(new[] { type.GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act provider.OnProvidersExecuting(context); // Assert var controller = Assert.Single(context.Result.Controllers); Assert.Empty(controller.Filters); }
public void CreateControllerModel_CustomCorsFilter_ReplacesHttpConstraints() { // Arrange var corsProvider = new CorsApplicationModelProvider(); var defaultProvider = new DefaultApplicationModelProvider(Options.Create(new MvcOptions())); var context = new ApplicationModelProviderContext(new[] { typeof(CustomCorsFilterController).GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act corsProvider.OnProvidersExecuting(context); // Assert var controller = Assert.Single(context.Result.Controllers); var action = Assert.Single(controller.Actions); var selector = Assert.Single(action.Selectors); var constraint = Assert.Single(selector.ActionConstraints, c => c is HttpMethodActionConstraint); Assert.IsType <CorsHttpMethodActionConstraint>(constraint); }
public void CreateControllerModel_CorsNotInUseDoesNotOverrideHttpConstraints() { // Arrange var corsProvider = new CorsApplicationModelProvider(); var defaultProvider = new DefaultApplicationModelProvider(new TestOptionsManager <MvcOptions>()); var context = new ApplicationModelProviderContext(new[] { typeof(RegularController).GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act corsProvider.OnProvidersExecuting(context); // Assert var model = Assert.Single(context.Result.Controllers); var action = Assert.Single(model.Actions); var selector = Assert.Single(action.Selectors); var constraint = Assert.Single(selector.ActionConstraints, c => c is HttpMethodActionConstraint); Assert.IsNotType <CorsHttpMethodActionConstraint>(constraint); }
public void CreateControllerModel_DisableCorsGloballyReplacesHttpMethodConstraints() { // Arrange var corsProvider = new CorsApplicationModelProvider(); var defaultProvider = new DefaultApplicationModelProvider(Options.Create(new MvcOptions())); var context = new ApplicationModelProviderContext(new[] { typeof(RegularController).GetTypeInfo() }); context.Result.Filters.Add(new DisableCorsAuthorizationFilter()); defaultProvider.OnProvidersExecuting(context); // Act corsProvider.OnProvidersExecuting(context); // Assert var model = Assert.Single(context.Result.Controllers); var action = Assert.Single(model.Actions); var selector = Assert.Single(action.Selectors); var constraint = Assert.Single(selector.ActionConstraints, c => c is HttpMethodActionConstraint); Assert.IsType <CorsHttpMethodActionConstraint>(constraint); }
public void InitializeFilterFactory_WithExpectedPropertyHelpers_ForTempDataAttributeProperties() { // Arrange var provider = new TempDataApplicationModelProvider(); var defaultProvider = new DefaultApplicationModelProvider(new TestOptionsManager <MvcOptions>()); var context = new ApplicationModelProviderContext(new[] { typeof(TestController_OneTempDataProperty).GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act provider.OnProvidersExecuting(context); var controller = context.Result.Controllers.SingleOrDefault(); var filter = controller.Filters.OfType <ControllerSaveTempDataPropertyFilterFactory>(); var saveTempDataPropertyFilterFactory = filter.SingleOrDefault(); var expected = typeof(TestController_OneTempDataProperty).GetProperty(nameof(TestController_OneTempDataProperty.Test2)); // Assert Assert.NotNull(saveTempDataPropertyFilterFactory); var tempDataPropertyHelper = Assert.Single(saveTempDataPropertyFilterFactory.TempDataProperties); Assert.Same(expected, tempDataPropertyHelper.PropertyInfo); }
public void BuildActionModel_EnableCorsAttributeAddsCorsAuthorizationFilterFactory() { // Arrange var corsProvider = new CorsApplicationModelProvider(); var defaultProvider = new DefaultApplicationModelProvider(Options.Create(new MvcOptions())); var context = new ApplicationModelProviderContext(new[] { typeof(EnableCorsController).GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act corsProvider.OnProvidersExecuting(context); // Assert var controller = Assert.Single(context.Result.Controllers); var action = Assert.Single(controller.Actions); Assert.Single(action.Filters, f => f is CorsAuthorizationFilterFactory); var selector = Assert.Single(action.Selectors); var constraint = Assert.Single(selector.ActionConstraints, c => c is HttpMethodActionConstraint); Assert.IsType <CorsHttpMethodActionConstraint>(constraint); }
public void BuildActionModel_DisableCorsAttributeAddsDisableCorsAuthorizationFilter() { // Arrange var corsProvider = new CorsApplicationModelProvider(); var defaultProvider = new DefaultApplicationModelProvider(new TestOptionsManager <MvcOptions>()); var context = new ApplicationModelProviderContext(new[] { typeof(DisableCorsActionController).GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act corsProvider.OnProvidersExecuting(context); // Assert var controller = Assert.Single(context.Result.Controllers); var action = Assert.Single(controller.Actions); Assert.True(action.Filters.Any(f => f is DisableCorsAuthorizationFilter)); var selector = Assert.Single(action.Selectors); var constraint = Assert.Single(selector.ActionConstraints, c => c is HttpMethodActionConstraint); Assert.IsType <CorsHttpMethodActionConstraint>(constraint); }
public void InitializeFilterFactory_WithExpectedPropertyHelpers_ForTempDataAttributeProperties() { // Arrange var expected = typeof(TestController_OneTempDataProperty).GetProperty(nameof(TestController_OneTempDataProperty.Test2)); var options = Options.Create(new MvcViewOptions()); var provider = new TempDataApplicationModelProvider(options); var defaultProvider = new DefaultApplicationModelProvider(Options.Create(new MvcOptions())); var context = new ApplicationModelProviderContext(new[] { typeof(TestController_OneTempDataProperty).GetTypeInfo() }); defaultProvider.OnProvidersExecuting(context); // Act provider.OnProvidersExecuting(context); var controller = context.Result.Controllers.SingleOrDefault(); var filter = Assert.IsType <ControllerSaveTempDataPropertyFilterFactory>(Assert.Single(controller.Filters)); // Assert Assert.NotNull(filter); var property = Assert.Single(filter.TempDataProperties); Assert.Same(expected, property.PropertyInfo); Assert.Equal("TempDataProperty-Test2", property.Key); }
private ControllerActionDescriptorProvider GetActionDescriptorProvider() { var controllerTypes = typeof(DefaultActionSelectorTests) .GetNestedTypes(BindingFlags.NonPublic) .Select(t => t.GetTypeInfo()) .ToList(); var options = new TestOptionsManager<MvcOptions>(); var controllerTypeProvider = new StaticControllerTypeProvider(controllerTypes); var modelProvider = new DefaultApplicationModelProvider(options); var provider = new ControllerActionDescriptorProvider( controllerTypeProvider, new[] { modelProvider }, options); return provider; }
private ControllerActionDescriptorProvider CreateProvider() { var assemblyProvider = new StaticAssemblyProvider(); assemblyProvider.CandidateAssemblies.Add(GetType().GetTypeInfo().Assembly); var controllerTypeProvider = new NamespaceFilteredControllerTypeProvider(assemblyProvider); var options = new MvcOptions(); var setup = new WebApiCompatShimOptionsSetup(); setup.Configure(options); var optionsAccessor = new Mock<IOptions<MvcOptions>>(); optionsAccessor .SetupGet(o => o.Value) .Returns(options); var authorizationOptionsAccessor = new Mock<IOptions<AuthorizationOptions>>(); authorizationOptionsAccessor .SetupGet(o => o.Value) .Returns(new AuthorizationOptions()); var modelProvider = new DefaultApplicationModelProvider(optionsAccessor.Object); var provider = new ControllerActionDescriptorProvider( controllerTypeProvider, new[] { modelProvider }, optionsAccessor.Object); return provider; }
private ControllerActionDescriptorProvider GetProvider( TypeInfo controllerTypeInfo, IEnumerable<IFilterMetadata> filters = null) { var options = new MockMvcOptionsAccessor(); if (filters != null) { foreach (var filter in filters) { options.Options.Filters.Add(filter); } } var controllerTypeProvider = new FixedSetControllerTypeProvider(new[] { controllerTypeInfo }); var modelProvider = new DefaultApplicationModelProvider(options); var provider = new ControllerActionDescriptorProvider( controllerTypeProvider, new[] { modelProvider }, options); return provider; }
private ControllerActionDescriptorProvider GetProvider( params TypeInfo[] controllerTypeInfos) { var options = new MockMvcOptionsAccessor(); var controllerTypeProvider = new FixedSetControllerTypeProvider(controllerTypeInfos); var modelProvider = new DefaultApplicationModelProvider(options); var provider = new ControllerActionDescriptorProvider( controllerTypeProvider, new[] { modelProvider }, options); return provider; }
private ControllerActionDescriptorProvider GetProvider( TypeInfo controllerTypeInfo, IEnumerable<IFilterMetadata> filters = null) { var options = new TestOptionsManager<MvcOptions>(); if (filters != null) { foreach (var filter in filters) { options.Value.Filters.Add(filter); } } var controllerTypeProvider = new StaticControllerTypeProvider(new[] { controllerTypeInfo }); var modelProvider = new DefaultApplicationModelProvider(options); var provider = new ControllerActionDescriptorProvider( controllerTypeProvider, new[] { modelProvider }, options); return provider; }
private ControllerActionDescriptorProvider GetProvider( TypeInfo controllerTypeInfo, IApplicationModelConvention convention) { var options = new MockMvcOptionsAccessor(); options.Options.Conventions.Add(convention); var controllerTypeProvider = new FixedSetControllerTypeProvider(new[] { controllerTypeInfo }); var modelProvider = new DefaultApplicationModelProvider(options); var provider = new ControllerActionDescriptorProvider( controllerTypeProvider, new[] { modelProvider }, options); return provider; }
private ControllerActionDescriptorProvider GetProvider( params TypeInfo[] controllerTypeInfos) { var options = new TestOptionsManager<MvcOptions>(); var controllerTypeProvider = new StaticControllerTypeProvider(controllerTypeInfos); var modelProvider = new DefaultApplicationModelProvider(options); var provider = new ControllerActionDescriptorProvider( controllerTypeProvider, new[] { modelProvider }, options); return provider; }
private ControllerActionDescriptorProvider GetProvider( TypeInfo controllerTypeInfo, IApplicationModelConvention convention) { var options = new TestOptionsManager<MvcOptions>(); options.Value.Conventions.Add(convention); var controllerTypeProvider = new StaticControllerTypeProvider(new[] { controllerTypeInfo }); var modelProvider = new DefaultApplicationModelProvider(options); var provider = new ControllerActionDescriptorProvider( controllerTypeProvider, new[] { modelProvider }, options); return provider; }