public void Should_load_lazy_policy_exactly_once_during_execution_and_caching_on() { // Arrange var callsToContainer = 0; var policy = new LazyLoadedPolicy(); FakeIoC.GetAllInstancesProvider = () => { callsToContainer++; return(new List <object> { policy }); }; SecurityConfigurator.Configure(configuration => { configuration.GetAuthenticationStatusFrom(TestDataFactory.ValidIsAuthenticatedFunction); configuration.ResolveServicesUsing(FakeIoC.GetAllInstances); configuration.Advanced.SetDefaultResultsCacheLifecycle(Cache.PerHttpRequest); }); var context = new MockSecurityContext(); var policyContainer = new PolicyContainer(TestDataFactory.ValidControllerName, TestDataFactory.ValidActionName, TestDataFactory.CreateValidPolicyAppender()); policyContainer.AddPolicy <LazyLoadedPolicy>(); // Act policyContainer.EnforcePolicies(context); policyContainer.EnforcePolicies(context); // Assert Assert.That(callsToContainer, Is.EqualTo(1)); Assert.That(policy.EnforceCallCount, Is.EqualTo(1), "Did not call enforce the expected amount of times"); }
public void Should_load_lazy_policy_exactly_twice_during_execution_with_caching_off() { // Arrange var callsToContainer = 0; var policy = new LazyLoadedPolicy(); FakeIoC.GetAllInstancesProvider = () => { callsToContainer++; return new List<object> { policy }; }; SecurityConfigurator.Configure(configuration => { configuration.GetAuthenticationStatusFrom(TestDataFactory.ValidIsAuthenticatedFunction); configuration.ResolveServicesUsing(FakeIoC.GetAllInstances); }); var context = new MockSecurityContext(); var policyContainer = new PolicyContainer(TestDataFactory.ValidControllerName, TestDataFactory.ValidActionName, TestDataFactory.CreateValidPolicyAppender()); policyContainer.AddPolicy<LazyLoadedPolicy>(); // Act policyContainer.EnforcePolicies(context); policyContainer.EnforcePolicies(context); // Assert Assert.That(callsToContainer, Is.EqualTo(2)); Assert.That(policy.EnforceCallCount, Is.EqualTo(2), "Did not call enforce the expected amount of times"); }