public void Should_not_stop_on_first_violation_and_return_2_results()
        {
            // Arrange
            PolicyExecutionMode.StopOnFirstViolation(false);

            var context = TestDataFactory.CreateSecurityContext(false);

            var firstPolicy = new Mock <ISecurityPolicy>();

            firstPolicy.Setup(x => x.Enforce(It.IsAny <ISecurityContext>())).Returns(PolicyResult.CreateFailureResult(firstPolicy.Object, "Failure occured"));

            var secondPolicy = new Mock <ISecurityPolicy>();

            secondPolicy.Setup(x => x.Enforce(It.IsAny <ISecurityContext>())).Returns(PolicyResult.CreateSuccessResult(secondPolicy.Object));

            var policyContainer = new PolicyContainer(TestDataFactory.ValidControllerName, TestDataFactory.ValidActionName, TestDataFactory.CreateValidPolicyAppender());

            policyContainer.AddPolicy(firstPolicy.Object).AddPolicy(secondPolicy.Object);

            // Act
            var results = policyContainer.EnforcePolicies(context);

            // Assert
            Assert.That(results.Count(), Is.EqualTo(2));
            Assert.That(results.First().ViolationOccured, Is.True);
            Assert.That(results.Last().ViolationOccured, Is.False);
        }
Example #2
0
        public void Should_return_false_for_should_stop_on_first_violation()
        {
            // Act
            PolicyExecutionMode.StopOnFirstViolation(false);

            // Assert
            Assert.False(PolicyExecutionMode.ShouldStopOnFirstViolation);
        }
Example #3
0
 public void Reset()
 {
     PolicyExecutionMode.StopOnFirstViolation(false);
     ServiceLocator.Reset();
     ExceptionFactory.Reset();
 }