Example #1
0
        public void Should_not_have_any_policycontainers()
        {
            // Act & Assert
            Because(configurationExpression =>
                    configurationExpression.ForActionsMatching(x => false)
                    );

            // Assert
            Assert.That(PolicyContainers.Count(), Is.EqualTo(0));
        }
Example #2
0
        public void Should_have_no_policycontainers_for_inheriting_controllers_of_generic_base_controller_of_BaseEntity_OtherViewModel()
        {
            // Act
            Because(configurationExpression =>
                    configurationExpression.ForAllControllersInheriting <GenericBaseController <BaseEntity, OtherViewModel> >()
                    );

            // Assert
            Assert.That(PolicyContainers.Count(), Is.EqualTo(0));
        }
Example #3
0
        public void Should_have_no_policycontainers_for_inheriting_controllers_in_specified_assemblies()
        {
            // Act
            Because(configurationExpression =>
                    configurationExpression.ForAllControllersInheriting <AbstractBaseController>(typeof(SecurityConfigurator).Assembly)
                    );

            // Assert
            Assert.That(PolicyContainers.Count(), Is.EqualTo(0));
        }
Example #4
0
        public void Should_have_policycontainers_for_all_actions_starting_with_Edit_in_the_specified_assembly()
        {
            // Arrange
            const string expectedActionName = "EditPost";

            // Act
            Because(configurationExpression =>
                    configurationExpression.ForActionsMatching(x => x.ActionName.StartsWith("Edit"), GetType().Assembly)
                    );

            // Assert
            Assert.That(PolicyContainers.Count(), Is.EqualTo(1));
            Assert.That(PolicyContainers.GetContainerFor(NameHelper.Controller <BlogController>(), expectedActionName), Is.Not.Null);
        }
Example #5
0
        public void Should_have_policycontainers_for_all_Delete_actions_in_calling_assembly()
        {
            // Arrange
            const string expectedActionName = "DeletePost";

            // Act
            Because(configurationExpression =>
                    configurationExpression.ForActionsMatching(x => x.ActionName == expectedActionName)
                    );

            // Assert
            Assert.That(PolicyContainers.Count(), Is.EqualTo(1));
            Assert.That(PolicyContainers.GetContainerFor(NameHelper.Controller <BlogController>(), expectedActionName), Is.Not.Null);
        }
Example #6
0
        public void Should_expose_Controller_Action_and_ActionResult()
        {
            // Act & Assert
            Because(configurationExpression =>
                    configurationExpression.ForActionsMatching(x =>
            {
                Assert.That(x.ControllerType, Is.Not.Null);
                Assert.That(x.ActionName, Is.Not.Empty);
                Assert.True(x.ActionResultType.IsControllerActionReturnType());
                return(false);
            }));

            // Assert
            Assert.That(PolicyContainers.Count(), Is.EqualTo(0));
        }
Example #7
0
        public void Should_have_policycontainers_for_all_controllers_and_all_actions_in_namespace_of_ClassInInvcludeNamespace()
        {
            // Arrange
            const string index   = "Index";
            var          include = NameHelper.Controller <IncludedController>();

            // Act
            Because(configurationExpression =>
                    configurationExpression.ForAllControllersInNamespaceContainingType <ClassInIncludeNamespace>()
                    );

            // Assert
            Assert.That(PolicyContainers.Count(), Is.EqualTo(1));
            Assert.That(PolicyContainers.GetContainerFor(include, index), Is.Not.Null);
        }
Example #8
0
        public void Should_have_policycontainers_for_inheriting_controllers_of_generic_base_controller_of_SecondInheritingEntity_SecondInheritingBaseViewModel()
        {
            // Arrange
            var inerhitingController = NameHelper.Controller <SecondInheritingGenericBaseController>();

            // Act
            Because(configurationExpression =>
                    configurationExpression.ForAllControllersInheriting <GenericBaseController <SecondInheritingEntity, SecondInheritingBaseViewModel> >()
                    );

            // Assert
            Assert.That(PolicyContainers.Count(), Is.EqualTo(2));
            Assert.That(PolicyContainers.GetContainerFor(inerhitingController, "InheritedAction"), Is.Not.Null);
            Assert.That(PolicyContainers.GetContainerFor(inerhitingController, "FirstClassAction"), Is.Not.Null);
        }
Example #9
0
        public void Should_have_policycontainers_for_all_Index_actions_where_controller_is_BlogController()
        {
            // Arrange
            const string expectedActionName = "Index";

            // Act
            Because(configurationExpression =>
                    configurationExpression.ForActionsMatching(x =>
                                                               x.ActionName == expectedActionName &&
                                                               x.ControllerType == typeof(BlogController)
                                                               )
                    );

            // Assert
            Assert.That(PolicyContainers.Count(), Is.EqualTo(1));
            Assert.That(PolicyContainers.GetContainerFor(NameHelper.Controller <BlogController>(), expectedActionName), Is.Not.Null);
        }
Example #10
0
        public void Should_have_policycontainers_for_inheriting_controllers_and_all_actions_in_specified_assemblies()
        {
            // Arrange
            var inerhitingController = NameHelper.Controller <IneritingAbstractBaseController>();
            var baseController       = NameHelper.Controller <AbstractBaseController>();

            // Act
            Because(configurationExpression =>
                    configurationExpression.ForAllControllersInheriting <AbstractBaseController>(GetType().Assembly, typeof(SecurityConfigurator).Assembly)
                    );

            // Assert
            Assert.That(PolicyContainers.Count(), Is.EqualTo(2));
            Assert.That(PolicyContainers.GetContainerFor(inerhitingController, "FirstClassAction"), Is.Not.Null);
            Assert.That(PolicyContainers.GetContainerFor(inerhitingController, "InheritedAction"), Is.Not.Null);
            Assert.That(PolicyContainers.GetContainerFor(baseController, "InheritedAction"), Is.Null);
        }
Example #11
0
        public void Should_have_policycontainers_for_inheriting_controllers_and_specific_action()
        {
            // Arrange
            var inerhitingController = NameHelper.Controller <IneritingAbstractBaseController>();
            var baseController       = NameHelper.Controller <AbstractBaseController>();

            // Act
            Because(configurationExpression =>
                    configurationExpression.ForAllControllersInheriting <AbstractBaseController>(x => x.InheritedAction())
                    );

            // Assert
            Assert.That(PolicyContainers.Count(), Is.EqualTo(1));
            Assert.That(PolicyContainers.GetContainerFor(inerhitingController, "InheritedAction"), Is.Not.Null);
            Assert.That(PolicyContainers.GetContainerFor(inerhitingController, "FirstClassAction"), Is.Null);
            Assert.That(PolicyContainers.GetContainerFor(baseController, "InheritedAction"), Is.Null);
        }
        public PolicyContainer AddPolicyContainer(PolicyContainer policyContainer)
        {
            if (policyContainer == null)
            {
                throw new ArgumentNullException(nameof(policyContainer));
            }

            var existingContainer = PolicyContainers.GetContainerFor(policyContainer.ControllerName, policyContainer.ActionName);

            if (existingContainer != null)
            {
                return((PolicyContainer)existingContainer);
            }

            _policyContainers.Add(policyContainer);

            return(policyContainer);
        }
        public void Should_have_policycontainers_for_all_controllers_and_all_actions_in_namespace_of_ClassInRootNamespace()
        {
            // Arrange
            const string index   = "Index";
            var          root    = NameHelper.Controller <TestData.AssemblyScannerControllers.RootController>();
            var          include = NameHelper.Controller <TestData.AssemblyScannerControllers.Include.IncludedController>();
            var          exclude = NameHelper.Controller <TestData.AssemblyScannerControllers.Exclude.ExcludedController>();

            // Act
            Because(configurationExpression =>
                    configurationExpression.ForAllControllersInNamespaceContainingType <TestData.AssemblyScannerControllers.ClassInRootNamespace>()
                    );

            // Assert
            Assert.That(PolicyContainers.Count(), Is.EqualTo(3));
            Assert.That(PolicyContainers.GetContainerFor(root, index), Is.Not.Null);
            Assert.That(PolicyContainers.GetContainerFor(include, index), Is.Not.Null);
            Assert.That(PolicyContainers.GetContainerFor(exclude, index), Is.Not.Null);
        }