public void Should_throw_ArgumentNullException_when_policy_to_add_is_null()
        {
            // Arrange
            var policyAppender = new DefaultPolicyAppender();

            // Act & Assert
            Assert.Throws<ArgumentNullException>(() =>
                policyAppender.UpdatePolicies(null, new List<ISecurityPolicy>())
            );
        }
        public void Should_throw_ArgumentNullException_when_policies_is_null()
        {
            // Arrange
            var policyAppender = new DefaultPolicyAppender();

            // Act & Assert
            Assert.Throws<ArgumentNullException>(() =>
                policyAppender.UpdatePolicies(new IgnorePolicy(), null)
            );
        }
        public void Should_throw_ArgumentNullException_when_policies_is_null()
        {
            // Arrange
            var policyAppender = new DefaultPolicyAppender();

            // Act & Assert
            Assert.Throws <ArgumentNullException>(() =>
                                                  policyAppender.UpdatePolicies(new IgnorePolicy(), null)
                                                  );
        }
        public void Should_throw_ArgumentNullException_when_policy_to_add_is_null()
        {
            // Arrange
            var policyAppender = new DefaultPolicyAppender();

            // Act & Assert
            Assert.Throws <ArgumentNullException>(() =>
                                                  policyAppender.UpdatePolicies(null, new List <ISecurityPolicy>())
                                                  );
        }
        public void Should_have_policyappender_set_to_instance_of_DefaultPolicyAppender()
        {
            // Arrange
            var expectedPolicyAppender  = new DefaultPolicyAppender();
            var configurationExpression = TestDataFactory.CreateValidConfigurationExpression();

            // Act
            configurationExpression.SetPolicyAppender(expectedPolicyAppender);

            // Assert
            configurationExpression.For <BlogController>(x => x.Index());
            var policyContainer = configurationExpression.GetContainerFor(NameHelper.Controller <BlogController>(), "Index");

            Assert.That(policyContainer.PolicyAppender, Is.EqualTo(expectedPolicyAppender));
        }
        public void SetUp()
        {
            // Arrange
            _defaultPolicyAppender = TestDataFactory.CreateValidPolicyAppender();
            _fakePolicyAppender    = TestDataFactory.CreateFakePolicyAppender();

            SecurityConfigurator.Reset();

            // Act
            SecurityConfigurator.Configure(configuration =>
            {
                configuration.GetAuthenticationStatusFrom(StaticHelper.IsAuthenticatedReturnsFalse);
                configuration.GetRolesFrom(StaticHelper.GetRolesExcludingOwner);

                configuration.SetPolicyAppender(_defaultPolicyAppender);
                configuration.For <BlogController>(x => x.Index()).DenyAnonymousAccess();

                configuration.SetPolicyAppender(_fakePolicyAppender);
                configuration.For <BlogController>(x => x.AddPost()).RequireRole(UserRole.Writer, UserRole.Publisher, UserRole.Owner);
            });

            _policyContainers = SecurityConfiguration.Current.PolicyContainers;
        }
        public void SetUp()
        {
            // Arrange
            _defaultPolicyAppender = TestDataFactory.CreateValidPolicyAppender();
            _fakePolicyAppender = TestDataFactory.CreateFakePolicyAppender();

            SecurityConfigurator.Reset();

            // Act
            SecurityConfigurator.Configure(configuration =>
            {
                configuration.GetAuthenticationStatusFrom(StaticHelper.IsAuthenticatedReturnsFalse);
                configuration.GetRolesFrom(StaticHelper.GetRolesExcludingOwner);

                configuration.SetPolicyAppender(_defaultPolicyAppender);
                configuration.For<BlogController>(x => x.Index()).DenyAnonymousAccess();

                configuration.SetPolicyAppender(_fakePolicyAppender);
                configuration.For<BlogController>(x => x.AddPost()).RequireRole(UserRole.Writer, UserRole.Publisher, UserRole.Owner);
            });

            _policyContainers = SecurityConfiguration.Current.PolicyContainers;
        }
        public void Should_have_policyappender_set_to_instance_of_DefaultPolicyAppender()
        {
            // Arrange
            var expectedPolicyAppender = new DefaultPolicyAppender();
            var configurationExpression = TestDataFactory.CreateValidConfigurationExpression();

            // Act
            configurationExpression.SetPolicyAppender(expectedPolicyAppender);

            // Assert
            configurationExpression.For<BlogController>(x => x.Index());
            var policyContainer = configurationExpression.GetContainerFor(NameHelper<BlogController>.Controller(), "Index");
            Assert.That(policyContainer.PolicyAppender, Is.EqualTo(expectedPolicyAppender));
        }