public void Should_throw_when_null_is_passed() { var validPolicy = new IgnorePolicy(); const string validMessage = "Some message"; // Act & assert Assert.Throws<ArgumentNullException>(() => PolicyResult.CreateFailureResult(null, validMessage)); Assert.Throws<ArgumentNullException>(() => PolicyResult.CreateFailureResult(validPolicy, null)); }
protected override void Context() { // Arrange _denyAnonymousAccessPolicy = new DenyAnonymousAccessPolicy(); _ignorePolicy = new IgnorePolicy(); Policies = new List<ISecurityPolicy> { _denyAnonymousAccessPolicy }; }
public override void SetUp() { base.SetUp(); // Arrange _denyAnonymousAccessPolicy = new DenyAnonymousAccessPolicy(); _ignorePolicy = new IgnorePolicy(); _policies = new List<ISecurityPolicy> { _denyAnonymousAccessPolicy }; }
public void Should_be_successful_when_roles_is_null() { // Arrange var policy = new IgnorePolicy(); const bool authenticated = true; const IEnumerable<object> roles = null; var context = TestDataFactory.CreateSecurityContext(authenticated, roles); // Act var result = policy.Enforce(context); // Assert Assert.That(result.ViolationOccured, Is.False); }
public void Should_be_successful_when_roles_are_passed() { // Arrange var policy = new IgnorePolicy(); const bool authenticated = true; var roles = new List<object> { "Administrator", "Editor", "Reader" }.ToArray(); var context = TestDataFactory.CreateSecurityContext(authenticated, roles); // Act var result = policy.Enforce(context); // Assert Assert.That(result.ViolationOccured, Is.False); }
public void Should_return_the_same_results() { // Arrange var context = TestDataFactory.CreateSecurityContext(false); context.Runtime.As<SecurityRuntime>().DefaultResultsCacheLifecycle = Cache.PerHttpSession; var firstPolicy = new IgnorePolicy(); var policyContainer = new PolicyContainer(TestDataFactory.ValidControllerName, TestDataFactory.ValidActionName, TestDataFactory.CreateValidPolicyAppender()); policyContainer.AddPolicy(firstPolicy); // Act var results1 = policyContainer.EnforcePolicies(context); var results2 = policyContainer.EnforcePolicies(context); SecurityCache.ClearCache(Lifecycle.HybridHttpSession); ; var results3 = policyContainer.EnforcePolicies(context); var results4 = policyContainer.EnforcePolicies(context); // Assert Assert.That(results1.Single(), Is.EqualTo(results2.Single())); Assert.That(results3.Single(), Is.EqualTo(results4.Single())); Assert.That(results1.Single(), Is.Not.EqualTo(results3.Single()), "Results should not be equal across sessions."); }
public void Should_return_unique_results() { // Arrange var context = TestDataFactory.CreateSecurityContext(false); context.Runtime.As<SecurityRuntime>().DefaultResultsCacheLifecycle = Cache.DoNotCache; var firstPolicy = new IgnorePolicy(); var policyContainer = new PolicyContainer(TestDataFactory.ValidControllerName, TestDataFactory.ValidActionName, TestDataFactory.CreateValidPolicyAppender()); policyContainer.AddPolicy(firstPolicy); // Act var results1 = policyContainer.EnforcePolicies(context); var results2 = policyContainer.EnforcePolicies(context); // Assert Assert.That(results1.Single(), Is.Not.EqualTo(results2.Single())); }
public void Should_use_cache_lifecycle_specified_when_adding_a_policy() { // Arrange const Cache defaultCacheLifecycle = Cache.PerHttpSession; const Cache specifiedCacheLifecycle = Cache.PerHttpRequest; var context = TestDataFactory.CreateSecurityContext(false); context.Runtime.As<SecurityRuntime>().DefaultResultsCacheLifecycle = defaultCacheLifecycle; var securityPolicy = new IgnorePolicy(); var policyContainer = new PolicyContainer(TestDataFactory.ValidControllerName, TestDataFactory.ValidActionName, TestDataFactory.CreateValidPolicyAppender()); policyContainer.AddPolicy(securityPolicy).Cache<IgnorePolicy>(specifiedCacheLifecycle); // Act var results1 = policyContainer.EnforcePolicies(context); var results2 = policyContainer.EnforcePolicies(context); SecurityCache.ClearCache(Lifecycle.HybridHttpContext); ; var results3 = policyContainer.EnforcePolicies(context); var results4 = policyContainer.EnforcePolicies(context); // Assert Assert.That(results1.Single(), Is.EqualTo(results2.Single())); Assert.That(results3.Single(), Is.EqualTo(results4.Single())); Assert.That(results1.Single(), Is.Not.EqualTo(results3.Single()), "Results should not be equal across requests."); }
public void Should_be_match_for_normal_policy() { // Arrange var expectation = new HasTypeExpectation<IgnorePolicy>(); var policy = new IgnorePolicy(); // Act var isMatch = expectation.IsMatch(policy); // Assert Assert.That(isMatch, Is.True); }
public void Should_not_be_match_for_normal_policy() { // Arrange var expectation = new HasTypeExpectation<DenyAnonymousAccessPolicy>(); var policy = new IgnorePolicy(); // Act var isMatch = expectation.IsMatch(policy); // Assert Assert.That(isMatch, Is.False); }
public void Should_retun_the_type_of_normal_policies() { // Arrange ISecurityPolicy policy = new IgnorePolicy(); // Act & assert Assert.That(policy.GetPolicyType(), Is.EqualTo(typeof(IgnorePolicy))); }
public void Should_return_the_same_results() { // Arrange var context = TestDataFactory.CreateSecurityContext(false); var firstPolicy = new IgnorePolicy(); var policyContainer = new PolicyContainer(TestDataFactory.ValidControllerName, TestDataFactory.ValidActionName, TestDataFactory.CreateValidPolicyAppender()); policyContainer.SecurityConfigurationProvider = () => TestDataFactory.CreateValidSecurityConfiguration(configuration => configuration.Advanced.SetDefaultResultsCacheLifecycle(Cache.PerHttpRequest)); policyContainer.AddPolicy(firstPolicy); // Act var results1 = policyContainer.EnforcePolicies(context); var results2 = policyContainer.EnforcePolicies(context); SecurityCache.ClearCache(Lifecycle.HybridHttpContext);; var results3 = policyContainer.EnforcePolicies(context); var results4 = policyContainer.EnforcePolicies(context); // Assert Assert.That(results1.Single(), Is.EqualTo(results2.Single())); Assert.That(results3.Single(), Is.EqualTo(results4.Single())); Assert.That(results1.Single(), Is.Not.EqualTo(results3.Single()), "Results should not be equal across requests."); }
public void Should_return_unique_results() { // Arrange var firstPolicy = new IgnorePolicy(); var policyContainer = new PolicyContainer(TestDataFactory.ValidControllerName, TestDataFactory.ValidActionName, TestDataFactory.CreateValidPolicyAppender()); policyContainer.SecurityConfigurationProvider = () => TestDataFactory.CreateValidSecurityConfiguration(configuration => configuration.Advanced.SetDefaultResultsCacheLifecycle(Cache.DoNotCache)); policyContainer.AddPolicy(firstPolicy); // Act var context = TestDataFactory.CreateSecurityContext(false); var results1 = policyContainer.EnforcePolicies(context); var results2 = policyContainer.EnforcePolicies(context); // Assert Assert.That(results1.Single(), Is.Not.EqualTo(results2.Single())); }