public void Should_prepend_attribute_policy_source() { var getActionContext = new ActionConfigurationContext(null, null, ActionMethod.From <CorsPolicySourceTests.Handler>(x => x.Get()), null); var postActionContext = new ActionConfigurationContext(null, null, ActionMethod.From <CorsPolicySourceTests.Handler>(x => x.Post()), null); var configuration = new CorsConfiguration(); new CorsConfigurationDsl(configuration) .PrependPolicySource <CorsPolicySource>() .PrependAttributePolicySource(x => x.ActionMethod.Name == "Get"); configuration.PolicySources.Count().ShouldEqual(2); var plugin = configuration.PolicySources.First(); plugin.HasInstance.ShouldBeFalse(); plugin.Type.ShouldEqual(typeof(CorsAttributePolicySource)); plugin.AppliesTo(getActionContext).ShouldBeTrue(); plugin.AppliesTo(postActionContext).ShouldBeFalse(); plugin = configuration.PolicySources.Second(); plugin.HasInstance.ShouldBeFalse(); plugin.Type.ShouldEqual(typeof(CorsPolicySource)); plugin.AppliesTo.ShouldBeNull(); }
public void Should_prepend_policy_source_plugin() { var getActionContext = new ActionConfigurationContext(null, null, ActionMethod.From <Handler>(x => x.Get()), null); var postActionContext = new ActionConfigurationContext(null, null, ActionMethod.From <Handler>(x => x.Post()), null); var overrideActionContext = new ActionConfigurationContext(null, null, ActionMethod.From <Handler>(x => x.Override()), null); var configuration = new CorsConfiguration(); CorsPolicySource.PrependPolicy(configuration.PolicySources, x => x .PreflightMaxAge(1)); CorsPolicySource.PrependPolicy(configuration.PolicySources, x => x .PreflightMaxAge(2) .AppliesWhen(a => a.ActionMethod.Name == "Get")); configuration.PolicySources.Count().ShouldEqual(2); var plugin = configuration.PolicySources.First(); plugin.AppliesTo(getActionContext).ShouldBeTrue(); plugin.AppliesTo(postActionContext).ShouldBeFalse(); plugin.AppliesTo(overrideActionContext).ShouldBeFalse(); plugin.Instance.CreatePolicy().PreflightMaxAge.ShouldEqual(2); plugin = configuration.PolicySources.Second(); plugin.AppliesTo(getActionContext).ShouldBeTrue(); plugin.AppliesTo(postActionContext).ShouldBeTrue(); plugin.AppliesTo(overrideActionContext).ShouldBeFalse(); plugin.Instance.CreatePolicy().PreflightMaxAge.ShouldEqual(1); }
public static List <Type> ThatApplyTo(this ConditionalPlugins <IBehavior, ActionConfigurationContext> behaviors, ActionMethod actionMethod, RouteDescriptor routeDescriptor, Configuration configuration, HttpConfiguration httpConfiguration) { var context = new ActionConfigurationContext(configuration, httpConfiguration, actionMethod, routeDescriptor); return(behaviors.ThatApplyTo(context) .Select(x => x.Type).ToList()); }