public void Initialize()
        {
            _agent = new Mock <IControllersAgent>();
            _controllersExecutor = new Mock <IControllerExecutor>();
            _redirector          = new Mock <IRedirector>();
            _processor           = new ControllersProcessor(_agent.Object, _controllersExecutor.Object, _redirector.Object);

            _context = new Mock <HttpContext>();

            _metaData = new ControllerMetaData(typeof(TestController1),
                                               new ControllerExecParameters(new Dictionary <HttpMethod, string> {
                { HttpMethod.Put, "/foo/bar" }
            }));

            _agent.Setup(x => x.MatchControllerRoute(It.IsAny <IControllerMetaData>(), It.IsAny <string>(), It.IsAny <string>())).Returns(new RouteMatchResult(true, _routeParameters));
            _agent.Setup(x => x.GetStandardControllersMetaData()).Returns(() => new List <IControllerMetaData>
            {
                _metaData
            });

            _agent.Setup(x => x.IsSecurityRulesViolated(It.IsAny <IControllerMetaData>(), It.IsAny <ClaimsPrincipal>())).Returns(SecurityRuleCheckResult.Ok);

            // Setup current URL

            _context.SetupGet(x => x.Request.Scheme).Returns("http");
            _context.SetupGet(x => x.Request.Host).Returns(new HostString("localhost", 8080));
            _context.SetupGet(x => x.Request.Path).Returns(new PathString("/foo/bar"));
            _context.SetupGet(x => x.Request.Method).Returns("GET");
        }
Exemplo n.º 2
0
        public void IsSecurityRulesViolated_AuthorizationRequiredNotAuthorized_NotAuthenticated()
        {
            // Assign
            var metaData = new ControllerMetaData(null, null, null, new ControllerSecurity(true));

            // Act & Assert
            Assert.AreEqual(SecurityRuleCheckResult.NotAuthenticated, _agent.IsSecurityRulesViolated(metaData, null));
        }
Exemplo n.º 3
0
        public void IsSecurityRulesViolated_NoSecurityRules_Ok()
        {
            // Assign
            var metaData = new ControllerMetaData(null);

            // Act & Assert
            Assert.AreEqual(SecurityRuleCheckResult.Ok, _agent.IsSecurityRulesViolated(metaData, null));
        }
Exemplo n.º 4
0
        public void IsAnyPageController_404Handler_False()
        {
            // Assign
            var metaData = new ControllerMetaData(null, null, new ControllerRole(false, false, true));

            // Act & Assert
            Assert.IsFalse(_agent.IsAnyPageController(metaData));
        }
Exemplo n.º 5
0
        public void IsAnyPageController_AnyPageControllerWithEmptyRoutes_True()
        {
            // Assign
            var metaData = new ControllerMetaData(null, new ControllerExecParameters(null));

            // Act & Assert
            Assert.IsTrue(_agent.IsAnyPageController(metaData));
        }
Exemplo n.º 6
0
        public void IsAnyPageController_AnyPageController_True()
        {
            // Assign
            var metaData = new ControllerMetaData(null);

            // Act & Assert
            Assert.IsTrue(_agent.IsAnyPageController(metaData));
        }
        public void IsAnyPageController_DeleteRoute_False()
        {
            // Assign
            var metaData = new ControllerMetaData(null, new ControllerExecParameters(new ControllerRouteInfo(null, null, null, null, "/")));

            // Act & Assert
            Assert.IsFalse(_agent.IsAnyPageController(metaData));
        }
Exemplo n.º 8
0
        public void IsAnyPageController_DeleteRoute_False()
        {
            // Assign
            var metaData = new ControllerMetaData(null, new ControllerExecParameters(new Dictionary <HttpMethod, string> {
                { HttpMethod.Delete, "/" }
            }));

            // Act & Assert
            Assert.IsFalse(_agent.IsAnyPageController(metaData));
        }
Exemplo n.º 9
0
        public void IsSecurityRulesViolated_UserExistNotAuthenticatedUser_NotAuthenticated()
        {
            // Assign

            var metaData = new ControllerMetaData(null, null, null, new ControllerSecurity(true));

            var id = new Mock <IIdentity>();

            id.Setup(x => x.IsAuthenticated).Returns(false);
            var user = new ClaimsPrincipal(id.Object);

            // Act & Assert
            Assert.AreEqual(SecurityRuleCheckResult.NotAuthenticated, _agent.IsSecurityRulesViolated(metaData, user));
        }
Exemplo n.º 10
0
        public void IsSecurityRulesViolated_AuthorizationRequiredAuthorized_Ok()
        {
            // Assign

            var metaData = new ControllerMetaData(null, null, null, new ControllerSecurity(true));
            var claims   = new List <Claim>
            {
                new Claim(ClaimTypes.Name, "Foo")
            };

            var id   = new ClaimsIdentity(claims, "test");
            var user = new ClaimsPrincipal(id);

            // Act & Assert
            Assert.AreEqual(SecurityRuleCheckResult.Ok, _agent.IsSecurityRulesViolated(metaData, user));
        }
Exemplo n.º 11
0
        public void IsSecurityRulesViolated_AuthorizationRequiredWithGroupAuthorizedNoGroups_Forbidden()
        {
            // Assign

            var metaData = new ControllerMetaData(null, null, null, new ControllerSecurity(true, "Admin, User"));
            var claims   = new List <Claim>
            {
                new Claim(ClaimTypes.Name, "Foo")
            };

            var id   = new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie);
            var user = new ClaimsPrincipal(id);

            // Act & Assert
            Assert.AreEqual(SecurityRuleCheckResult.Forbidden, _agent.IsSecurityRulesViolated(metaData, user));
        }
Exemplo n.º 12
0
        public void IsSecurityRulesViolated_AuthorizationRequiredWithGroupAuthorizedNotInGroup_Forbidden()
        {
            // Assign

            var metaData = new ControllerMetaData(null, null, null, new ControllerSecurity(true, new List <string> {
                "Admin"
            }));
            var claims = new List <Claim>
            {
                new Claim(ClaimTypes.Name, "Foo"),
                new Claim(ClaimTypes.Role, "User")
            };

            var id   = new ClaimsIdentity(claims, "test");
            var user = new ClaimsPrincipal(id);

            // Act & Assert
            Assert.AreEqual(SecurityRuleCheckResult.Forbidden, _agent.IsSecurityRulesViolated(metaData, user));
        }
Exemplo n.º 13
0
        public void Initialize()
        {
            _agent = new Mock <IControllersAgent>();
            _controllersExecutor = new Mock <IControllerExecutor>();
            _processor           = new ControllersProcessor(_agent.Object, _controllersExecutor.Object);

            _context = new Mock <HttpContext>();

            _metaData = new ControllerMetaData(typeof(TestController1),
                                               new ControllerExecParameters(new ControllerRouteInfo("/foo/bar")));

            _agent.Setup(x => x.MatchControllerRoute(It.IsAny <IControllerMetaData>(), It.IsAny <string>(), It.IsAny <string>())).Returns(new RouteMatchResult(true, _routeParameters));
            _agent.Setup(x => x.GetStandardControllersMetaData()).Returns(() => new List <IControllerMetaData>
            {
                _metaData
            });

            _agent.Setup(x => x.IsSecurityRulesViolated(It.IsAny <IControllerMetaData>(), It.IsAny <ClaimsPrincipal>())).Returns(SecurityRuleCheckResult.Ok);

            _context.SetupGet(x => x.Request.Path).Returns(new PathString("/foo/bar"));
            _context.SetupGet(x => x.Request.Method).Returns("GET");
        }