Exemple #1
0
        public void Should_clear_all_cache_strategies_for_policy()
        {
            var controllerName   = NameHelper.Controller <AdminController>();
            var policyContainers = new List <PolicyContainer>
            {
                TestDataFactory.CreateValidPolicyContainer(controllerName, "Index"),
                TestDataFactory.CreateValidPolicyContainer(controllerName, "ListPosts"),
                TestDataFactory.CreateValidPolicyContainer(controllerName, "AddPost")
            };

            var conventionPolicyContainer = new ConventionPolicyContainer(policyContainers.Cast <IPolicyContainerConfiguration>().ToList());

            conventionPolicyContainer.Cache <RequireAnyRolePolicy>(Cache.PerHttpRequest);
            conventionPolicyContainer.Cache <RequireAllRolesPolicy>(Cache.PerHttpRequest);

            // Act
            conventionPolicyContainer.ClearCacheStrategyFor <RequireAnyRolePolicy>();

            // Assert
            var containers = policyContainers.ToList();

            Assert.That(containers[0].CacheStrategies.Single().PolicyType, Is.EqualTo(typeof(RequireAllRolesPolicy)));
            Assert.That(containers[1].CacheStrategies.Single().PolicyType, Is.EqualTo(typeof(RequireAllRolesPolicy)));
            Assert.That(containers[2].CacheStrategies.Single().PolicyType, Is.EqualTo(typeof(RequireAllRolesPolicy)));
        }
Exemple #2
0
        public void Should_add_policyresult_cache_strategy_to_policycontainers()
        {
            // Arrange
            var controllerName   = NameHelper.Controller <AdminController>();
            var policyContainers = new List <PolicyContainer>
            {
                TestDataFactory.CreateValidPolicyContainer(controllerName, "Index"),
                TestDataFactory.CreateValidPolicyContainer(controllerName, "ListPosts"),
                TestDataFactory.CreateValidPolicyContainer(controllerName, "AddPost")
            };

            var         conventionPolicyContainer = new ConventionPolicyContainer(policyContainers.Cast <IPolicyContainerConfiguration>().ToList());
            const Cache expectedLifecycle         = Cache.PerHttpRequest;
            const By    expectedLevel             = By.ControllerAction;
            var         expectedType = typeof(DenyAnonymousAccessPolicy);

            // Act
            conventionPolicyContainer.Cache <DenyAnonymousAccessPolicy>(expectedLifecycle, expectedLevel);

            // Assert
            var containers = policyContainers.ToList();

            Assert.That(containers[0].CacheStrategies.Single().PolicyType, Is.EqualTo(expectedType));
            Assert.That(containers[0].CacheStrategies.Single().CacheLifecycle, Is.EqualTo(expectedLifecycle));
            Assert.That(containers[0].CacheStrategies.Single().CacheLevel, Is.EqualTo(expectedLevel));
            Assert.That(containers[1].CacheStrategies.Single().PolicyType, Is.EqualTo(expectedType));
            Assert.That(containers[1].CacheStrategies.Single().CacheLifecycle, Is.EqualTo(expectedLifecycle));
            Assert.That(containers[1].CacheStrategies.Single().CacheLevel, Is.EqualTo(expectedLevel));
            Assert.That(containers[2].CacheStrategies.Single().PolicyType, Is.EqualTo(expectedType));
            Assert.That(containers[2].CacheStrategies.Single().CacheLifecycle, Is.EqualTo(expectedLifecycle));
            Assert.That(containers[2].CacheStrategies.Single().CacheLevel, Is.EqualTo(expectedLevel));
        }
Exemple #3
0
 public void SetUp()
 {
     // Arrange
     _policyContainers = new List <IPolicyContainer>
     {
         TestDataFactory.CreateValidPolicyContainer()
     };
     _conventionPolicyContainer = new ConventionPolicyContainer(_policyContainers);
 }
        public void Should_add_lazy_policy_to_policycontainers()
        {
            // Arrange
            var controllerName = NameHelper.Controller<AdminController>();
            var policyContainers = new List<IPolicyContainer>
            {
                TestDataFactory.CreateValidPolicyContainer(controllerName, "Index"),
                TestDataFactory.CreateValidPolicyContainer(controllerName, "ListPosts"),
                TestDataFactory.CreateValidPolicyContainer(controllerName, "AddPost")
            };

            var conventionPolicyContainer = new ConventionPolicyContainer(policyContainers);

            // Act
            conventionPolicyContainer.AddPolicy<DenyAnonymousAccessPolicy>();

            // Assert
            Assert.That(policyContainers[0].GetPolicies().First(), Is.TypeOf<LazySecurityPolicy<DenyAnonymousAccessPolicy>>());
            Assert.That(policyContainers[1].GetPolicies().First(), Is.TypeOf<LazySecurityPolicy<DenyAnonymousAccessPolicy>>());
            Assert.That(policyContainers[2].GetPolicies().First(), Is.TypeOf<LazySecurityPolicy<DenyAnonymousAccessPolicy>>());
        }
        public void Should_add_policy_to_policycontainers()
        {
            // Arrange
            var policyContainers = new List<IPolicyContainer>()
                {
                    TestDataFactory.CreateValidPolicyContainer("Admin", "Index"),
                    TestDataFactory.CreateValidPolicyContainer("Admin", "ListPosts"),
                    TestDataFactory.CreateValidPolicyContainer("Admin", "AddPost")
                };

            var conventionPolicyContainer = new ConventionPolicyContainer(policyContainers);
            var policy = new DenyAnonymousAccessPolicy();

            // Act
            conventionPolicyContainer.AddPolicy(policy);

            // Assert
            Assert.That(policyContainers[0].GetPolicies().First(), Is.EqualTo(policy));
            Assert.That(policyContainers[1].GetPolicies().First(), Is.EqualTo(policy));
            Assert.That(policyContainers[2].GetPolicies().First(), Is.EqualTo(policy));
        }
Exemple #6
0
        public void Should_add_lazy_policy_to_policycontainers()
        {
            // Arrange
            var controllerName   = NameHelper.Controller <AdminController>();
            var policyContainers = new List <PolicyContainer>
            {
                TestDataFactory.CreateValidPolicyContainer(controllerName, "Index"),
                TestDataFactory.CreateValidPolicyContainer(controllerName, "ListPosts"),
                TestDataFactory.CreateValidPolicyContainer(controllerName, "AddPost")
            };

            var conventionPolicyContainer = new ConventionPolicyContainer(policyContainers.Cast <IPolicyContainerConfiguration>().ToList());

            // Act
            conventionPolicyContainer.AddPolicy <DenyAnonymousAccessPolicy>();

            // Assert
            Assert.That(policyContainers[0].GetPolicies().First(), Is.TypeOf <LazySecurityPolicy <DenyAnonymousAccessPolicy> >());
            Assert.That(policyContainers[1].GetPolicies().First(), Is.TypeOf <LazySecurityPolicy <DenyAnonymousAccessPolicy> >());
            Assert.That(policyContainers[2].GetPolicies().First(), Is.TypeOf <LazySecurityPolicy <DenyAnonymousAccessPolicy> >());
        }
        public void Should_add_policy_to_policycontainers()
        {
            // Arrange
            var controllerName = NameHelper.Controller<AdminController>();
            var policyContainers = new List<PolicyContainer>
            {
                TestDataFactory.CreateValidPolicyContainer(controllerName, "Index"),
                TestDataFactory.CreateValidPolicyContainer(controllerName, "ListPosts"),
                TestDataFactory.CreateValidPolicyContainer(controllerName, "AddPost")
            };

            var conventionPolicyContainer = new ConventionPolicyContainer(policyContainers.Cast<IPolicyContainerConfiguration>().ToList());
            var policy = new DenyAnonymousAccessPolicy();

            // Act
            conventionPolicyContainer.AddPolicy(policy);

            // Assert
            Assert.That(policyContainers[0].GetPolicies().First(), Is.EqualTo(policy));
            Assert.That(policyContainers[1].GetPolicies().First(), Is.EqualTo(policy));
            Assert.That(policyContainers[2].GetPolicies().First(), Is.EqualTo(policy));
        }
Exemple #8
0
        public void Should_add_policy_to_policycontainers()
        {
            // Arrange
            var controllerName   = NameHelper.Controller <AdminController>();
            var policyContainers = new List <IPolicyContainer>
            {
                TestDataFactory.CreateValidPolicyContainer(controllerName, "Index"),
                TestDataFactory.CreateValidPolicyContainer(controllerName, "ListPosts"),
                TestDataFactory.CreateValidPolicyContainer(controllerName, "AddPost")
            };

            var conventionPolicyContainer = new ConventionPolicyContainer(policyContainers);
            var policy = new DenyAnonymousAccessPolicy();

            // Act
            conventionPolicyContainer.AddPolicy(policy);

            // Assert
            Assert.That(policyContainers[0].GetPolicies().First(), Is.EqualTo(policy));
            Assert.That(policyContainers[1].GetPolicies().First(), Is.EqualTo(policy));
            Assert.That(policyContainers[2].GetPolicies().First(), Is.EqualTo(policy));
        }
Exemple #9
0
        public void Should_delegate_work_to_policycontainers()
        {
            // Arrange
            var policyContainer1 = new Mock <IPolicyContainerConfiguration>();
            var policyContainer2 = new Mock <IPolicyContainerConfiguration>();
            var policyContainer3 = new Mock <IPolicyContainerConfiguration>();

            var policyContainers = new List <IPolicyContainerConfiguration>
            {
                policyContainer1.Object,
                policyContainer2.Object,
                policyContainer3.Object,
            };

            var conventionPolicyContainer = new ConventionPolicyContainer(policyContainers);

            // Act
            conventionPolicyContainer.RemovePolicy <SomePolicy>();

            // Assert
            policyContainer1.Verify(x => x.RemovePolicy(It.IsAny <Func <SomePolicy, bool> >()), Times.Once());
            policyContainer2.Verify(x => x.RemovePolicy(It.IsAny <Func <SomePolicy, bool> >()), Times.Once());
            policyContainer3.Verify(x => x.RemovePolicy(It.IsAny <Func <SomePolicy, bool> >()), Times.Once());
        }
Exemple #10
0
        public void Should_clear_all_cache_strategies()
        {
            var controllerName   = NameHelper.Controller <AdminController>();
            var policyContainers = new List <IPolicyContainer>
            {
                TestDataFactory.CreateValidPolicyContainer(controllerName, "Index"),
                TestDataFactory.CreateValidPolicyContainer(controllerName, "ListPosts"),
                TestDataFactory.CreateValidPolicyContainer(controllerName, "AddPost")
            };

            var conventionPolicyContainer = new ConventionPolicyContainer(policyContainers);

            conventionPolicyContainer.Cache <RequireRolePolicy>(Cache.PerHttpRequest);

            // Act
            conventionPolicyContainer.ClearCacheStrategies();

            // Assert
            var containers = policyContainers.Cast <PolicyContainer>().ToList();

            Assert.That(containers[0].CacheStrategies.Any(), Is.False);
            Assert.That(containers[1].CacheStrategies.Any(), Is.False);
            Assert.That(containers[2].CacheStrategies.Any(), Is.False);
        }
        public void Should_delegate_work_to_policycontainers()
        {
            // Arrange
            var policyContainer1 = new Mock<IPolicyContainer>();
            var policyContainer2 = new Mock<IPolicyContainer>();
            var policyContainer3 = new Mock<IPolicyContainer>();

            var policyContainers = new List<IPolicyContainer>()
            {
                policyContainer1.Object,
                policyContainer2.Object,
                policyContainer3.Object,
            };

            var conventionPolicyContainer = new ConventionPolicyContainer(policyContainers);

            // Act
            conventionPolicyContainer.RemovePolicy<SomePolicy>();

            // Assert
            policyContainer1.Verify(x => x.RemovePolicy(It.IsAny<Func<SomePolicy, bool>>()), Times.Once());
            policyContainer2.Verify(x => x.RemovePolicy(It.IsAny<Func<SomePolicy, bool>>()), Times.Once());
            policyContainer3.Verify(x => x.RemovePolicy(It.IsAny<Func<SomePolicy, bool>>()), Times.Once());
        }
 public void SetUp()
 {
     // Arrange
     _policyContainers = new List<IPolicyContainer>
     {
         TestDataFactory.CreateValidPolicyContainer()
     };
     _conventionPolicyContainer = new ConventionPolicyContainer(_policyContainers);
 }
        public void Should_clear_all_cache_strategies()
        {
            var controllerName = NameHelper.Controller<AdminController>();
            var policyContainers = new List<IPolicyContainer>
            {
                TestDataFactory.CreateValidPolicyContainer(controllerName, "Index"),
                TestDataFactory.CreateValidPolicyContainer(controllerName, "ListPosts"),
                TestDataFactory.CreateValidPolicyContainer(controllerName, "AddPost")
            };

            var conventionPolicyContainer = new ConventionPolicyContainer(policyContainers);
            conventionPolicyContainer.Cache<RequireRolePolicy>(Cache.PerHttpRequest);

            // Act
            conventionPolicyContainer.ClearCacheStrategies();

            // Assert
            var containers = policyContainers.Cast<PolicyContainer>().ToList();
            Assert.That(containers[0].CacheStrategies.Any(), Is.False);
            Assert.That(containers[1].CacheStrategies.Any(), Is.False);
            Assert.That(containers[2].CacheStrategies.Any(), Is.False);
        }
        public void Should_add_policyresult_cache_strategy_to_policycontainers()
        {
            // Arrange
            var controllerName = NameHelper.Controller<AdminController>();
            var policyContainers = new List<IPolicyContainer>
            {
                TestDataFactory.CreateValidPolicyContainer(controllerName, "Index"),
                TestDataFactory.CreateValidPolicyContainer(controllerName, "ListPosts"),
                TestDataFactory.CreateValidPolicyContainer(controllerName, "AddPost")
            };

            var conventionPolicyContainer = new ConventionPolicyContainer(policyContainers, By.Controller);
            const Cache expectedLifecycle = Cache.PerHttpRequest;
            var expectedType = typeof(DenyAnonymousAccessPolicy);

            // Act
            conventionPolicyContainer.Cache<DenyAnonymousAccessPolicy>(expectedLifecycle);

            // Assert
            var containers = policyContainers.Cast<PolicyContainer>().ToList();
            Assert.That(containers[0].CacheStrategies.Single().PolicyType, Is.EqualTo(expectedType));
            Assert.That(containers[0].CacheStrategies.Single().CacheLifecycle, Is.EqualTo(expectedLifecycle));
            Assert.That(containers[0].CacheStrategies.Single().CacheLevel, Is.EqualTo(By.Controller));
            Assert.That(containers[1].CacheStrategies.Single().PolicyType, Is.EqualTo(expectedType));
            Assert.That(containers[1].CacheStrategies.Single().CacheLifecycle, Is.EqualTo(expectedLifecycle));
            Assert.That(containers[1].CacheStrategies.Single().CacheLevel, Is.EqualTo(By.Controller));
            Assert.That(containers[2].CacheStrategies.Single().PolicyType, Is.EqualTo(expectedType));
            Assert.That(containers[2].CacheStrategies.Single().CacheLifecycle, Is.EqualTo(expectedLifecycle));
            Assert.That(containers[2].CacheStrategies.Single().CacheLevel, Is.EqualTo(By.Controller));
        }
        public void Should_clear_all_cache_strategies_for_policy()
        {
            var controllerName = NameHelper.Controller<AdminController>();
            var policyContainers = new List<PolicyContainer>
            {
                TestDataFactory.CreateValidPolicyContainer(controllerName, "Index"),
                TestDataFactory.CreateValidPolicyContainer(controllerName, "ListPosts"),
                TestDataFactory.CreateValidPolicyContainer(controllerName, "AddPost")
            };

            var conventionPolicyContainer = new ConventionPolicyContainer(policyContainers.Cast<IPolicyContainerConfiguration>().ToList());
            conventionPolicyContainer.Cache<RequireAnyRolePolicy>(Cache.PerHttpRequest);
            conventionPolicyContainer.Cache<RequireAllRolesPolicy>(Cache.PerHttpRequest);

            // Act
            conventionPolicyContainer.ClearCacheStrategyFor<RequireAnyRolePolicy>();

            // Assert
            var containers = policyContainers.ToList();
            Assert.That(containers[0].CacheStrategies.Single().PolicyType, Is.EqualTo(typeof(RequireAllRolesPolicy)));
            Assert.That(containers[1].CacheStrategies.Single().PolicyType, Is.EqualTo(typeof(RequireAllRolesPolicy)));
            Assert.That(containers[2].CacheStrategies.Single().PolicyType, Is.EqualTo(typeof(RequireAllRolesPolicy)));
        }