public void BuildControllerModel_ClassWithFilterInterfaces_UnsupportedType() { // Arrange var builder = new DefaultControllerModelBuilder(new DefaultActionModelBuilder(null), null); var typeInfo = typeof(UnsupportedFiltersController).GetTypeInfo(); // Act var model = builder.BuildControllerModel(typeInfo); // Assert Assert.Empty(model.Filters); }
public void BuildControllerModel_AuthorizeAttributeAddsAuthorizeFilter() { // Arrange var builder = new DefaultControllerModelBuilder(new DefaultActionModelBuilder(null), null); var typeInfo = typeof(AccountController).GetTypeInfo(); // Act var model = builder.BuildControllerModel(typeInfo); // Assert Assert.True(model.Filters.Any(f => f is AuthorizeFilter)); }
public void BuildControllerModel_ClassWithFilterInterfaces_HasFilter() { // Arrange var builder = new DefaultControllerModelBuilder(new DefaultActionModelBuilder(null), null); var typeInfo = typeof(SomeFiltersController).GetTypeInfo(); // Act var model = builder.BuildControllerModel(typeInfo); // Assert Assert.Single(model.Filters, f => f is ControllerActionFilter); Assert.Single(model.Filters, f => f is ControllerResultFilter); }
public void BuildControllerModel_DerivedFromControllerClass_HasFilter() { // Arrange var builder = new DefaultControllerModelBuilder(new DefaultActionModelBuilder(null), null); var typeInfo = typeof(StoreController).GetTypeInfo(); // Act var model = builder.BuildControllerModel(typeInfo); // Assert var filter = Assert.Single(model.Filters); Assert.IsType <ControllerActionFilter>(filter); }
public void BuildControllerModel_ClassWithoutFilterInterfaces_HasNoControllerFilter() { // Arrange var builder = new DefaultControllerModelBuilder(new DefaultActionModelBuilder(null), null); var typeInfo = typeof(NoFiltersController).GetTypeInfo(); // Act var model = builder.BuildControllerModel(typeInfo); // Assert var filter = Assert.Single(model.Filters); Assert.IsType <ProducesAttribute>(filter); }
public void BuildControllerModel_AddsControllerProperties() { // Arrange var builder = new DefaultControllerModelBuilder(new DefaultActionModelBuilder(null), null); var typeInfo = typeof(ModelBinderController).GetTypeInfo(); // Act var model = builder.BuildControllerModel(typeInfo); // Assert Assert.Equal(2, model.ControllerProperties.Count); Assert.Equal("Bound", model.ControllerProperties[0].PropertyName); Assert.Equal(BindingSource.Query, model.ControllerProperties[0].BindingInfo.BindingSource); Assert.NotNull(model.ControllerProperties[0].Controller); var attribute = Assert.Single(model.ControllerProperties[0].Attributes); Assert.IsType <FromQueryAttribute>(attribute); }
public void BuildControllerModel_DisableCorsAttributeAddsDisableCorsAuthorizationFilter() { // Arrange var corsOptions = new CorsOptions(); corsOptions.AddPolicy("policy", new CorsPolicy()); var mockOptions = new Mock <IOptions <CorsOptions> >(); mockOptions.SetupGet(o => o.Options) .Returns(corsOptions); var builder = new DefaultControllerModelBuilder(new DefaultActionModelBuilder(null), authorizationOptions: null); var typeInfo = typeof(DisableCorsController).GetTypeInfo(); // Act var model = builder.BuildControllerModel(typeInfo); // Assert Assert.True(model.Filters.Any(f => f is DisableCorsAuthorizationFilter)); }
public void BuildControllerModel_ClassWithHiddenInheritedRoutes() { // Arrange var builder = new DefaultControllerModelBuilder(new DefaultActionModelBuilder(null), null); var typeInfo = typeof(DerivedClassHidingRoutesController).GetTypeInfo(); // Act var model = builder.BuildControllerModel(typeInfo); // Assert Assert.Equal(2, model.AttributeRoutes.Count); Assert.Equal(2, model.Attributes.Count); var route = Assert.Single(model.AttributeRoutes, r => r.Template == "C"); Assert.Contains(route.Attribute, model.Attributes); route = Assert.Single(model.AttributeRoutes, r => r.Template == "D"); Assert.Contains(route.Attribute, model.Attributes); }
public void BuildControllerModel_EnableCorsAttributeAddsCorsAuthorizationFilterFactory() { // Arrange var corsOptions = new CorsOptions(); corsOptions.AddPolicy("policy", new CorsPolicy()); var mockOptions = new Mock <IOptions <CorsOptions> >(); mockOptions.SetupGet(o => o.Options) .Returns(corsOptions); var builder = new DefaultControllerModelBuilder(new DefaultActionModelBuilder(null), NullLoggerFactory.Instance, authorizationOptions: null); var typeInfo = typeof(CorsController).GetTypeInfo(); // Act var model = builder.BuildControllerModel(typeInfo); // Assert Assert.Single(model.Filters, f => f is CorsAuthorizationFilterFactory); }