Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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));
        }
Esempio n. 8
0
        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);
        }