Beispiel #1
0
        public void Test_RoleRequirementFilter_NoFeatureFlagsSupplied()
        {
            // Arrange
            var mockFeatureFlags = new Mock <IFeatureFlag>();
            var filter           = new RoleRequirementFilter(new string[] { "" });

            var authContext = new AuthorizationFilterContext(new ActionContext
            {
                HttpContext      = FakeHttpContext.GetRequestHttpContext(new byte[] { }),
                RouteData        = new RouteData(),
                ActionDescriptor = new ActionDescriptor()
                {
                    AttributeRouteInfo = new AttributeRouteInfo()
                }
            },
                                                             new List <IFilterMetadata>());

            authContext.HttpContext.User = new System.Security.Claims.ClaimsPrincipal(
                new ClaimsIdentity(new List <Claim>
            {
                new Claim("oid", "token")
            })
                );

            // Act
            filter.OnAuthorization(authContext);

            // Assert
            mockFeatureFlags.Verify(m => m.GetFeatureFlag(It.IsAny <string>(), It.IsAny <bool>()), Times.Never);
        }
Beispiel #2
0
        public void Test_RoleRequirementFilter_NoFeatureFlagsSupplied_ValidRoles()
        {
            // Arrange
            var filter = new RoleRequirementFilter(new string[] { "TestRole" });

            var authContext = new AuthorizationFilterContext(new ActionContext
            {
                HttpContext      = FakeHttpContext.GetRequestHttpContext(new byte[] { }),
                RouteData        = new RouteData(),
                ActionDescriptor = new ActionDescriptor()
                {
                    AttributeRouteInfo = new AttributeRouteInfo()
                }
            }, new List <IFilterMetadata>());

            authContext.HttpContext.User = new System.Security.Claims.ClaimsPrincipal(
                new ClaimsIdentity(new List <Claim>
            {
                new Claim("oid", "token"),
                new Claim(ClaimTypes.Role, "TestRole")
            })
                );

            // Act
            filter.OnAuthorization(authContext);

            // Assert
            Assert.Null(authContext.Result);
        }
Beispiel #3
0
        public void Test_RoleRequirementFilter_FeatureFlagsSupplied_RolesAuthOff()
        {
            // Arrange
            var mockFeatureFlags = new Mock <IFeatureFlag>();

            mockFeatureFlags.Setup(m => m.GetFeatureFlag(
                                       It.IsAny <string>(),
                                       It.IsAny <bool>()
                                       )).Returns(false);
            var filter = new RoleRequirementFilter(new string[] { "TestRole" }, mockFeatureFlags.Object);

            var authContext = new AuthorizationFilterContext(new ActionContext
            {
                HttpContext      = FakeHttpContext.GetRequestHttpContext(new byte[] { }),
                RouteData        = new RouteData(),
                ActionDescriptor = new ActionDescriptor()
                {
                    AttributeRouteInfo = new AttributeRouteInfo()
                }
            },
                                                             new List <IFilterMetadata>());

            authContext.HttpContext.User = new ClaimsPrincipal(
                new ClaimsIdentity(new List <Claim>
            {
                new Claim("oid", "token"),
                new Claim(ClaimTypes.Role, "InvalidTestRole")
            }));

            // Act
            filter.OnAuthorization(authContext);

            // Assert
            Assert.Null(authContext.Result);
        }