private FormRequest createRequest() { var rules = new AccessorRules(); var overrides = new ValidationOptionsTargetOverrides().As <IAccessorRulesRegistration>(); overrides.AddRules(rules); var services = new InMemoryServiceLocator(); services.Add <IChainResolver>(new ChainResolutionCache(theGraph)); services.Add(rules); services.Add <IChainUrlResolver>(new ChainUrlResolver(new OwinHttpRequest())); services.Add <ITypeResolver>(new TypeResolver()); services.Add <ITypeDescriptorCache>(new TypeDescriptorCache()); var graph = ValidationGraph.BasicGraph(); graph.Fields.FindWith(new AccessorRulesFieldSource(rules)); services.Add(graph); var request = new FormRequest(new ChainSearch { Type = typeof(ValidationOptionsTarget) }, new ValidationOptionsTarget()); request.Attach(services); request.ReplaceTag(new FormTag("test")); return(request); }
public static void BuildHtmlConventionLibrary(HtmlConventionLibrary library, AccessorRules rules) { library.Import(new DefaultHtmlConventions().Library); var visitor = new Visitor(rules); library.For <ElementRequest>().AcceptVisitor(visitor); }
public void rule_registration_is_idempotent() { var rules = new AccessorRules(); rules.Add<Target1>(x => x.Age, new ColorRule("red")); rules.Add<Target1>(x => x.Age, new ColorRule("red")); rules.Add<Target1>(x => x.Age, new ColorRule("red")); rules.AllRulesFor<Target1, IRule>(x => x.Age) .Single().ShouldEqual(new ColorRule("red")); }
public void rule_registration_is_idempotent() { var rules = new AccessorRules(); rules.Add <Target1>(x => x.Age, new ColorRule("red")); rules.Add <Target1>(x => x.Age, new ColorRule("red")); rules.Add <Target1>(x => x.Age, new ColorRule("red")); rules.AllRulesFor <Target1, IRule>(x => x.Age) .Single().ShouldEqual(new ColorRule("red")); }
public void returns_all_rules_of_a_type() { var rules = new AccessorRules(); rules.Add<Target1>(x => x.Name, new ColorRule("red")); rules.Add<Target1>(x => x.Name, new ColorRule("green")); rules.Add<Target1>(x => x.Name, new ColorRule("blue")); rules.Add<Target1>(x => x.Name, new FooPolicy()); rules.Add<Target1>(x => x.Name, new BarPolicy()); rules.AllRulesFor<Target1, IRule>(x => x.Name).ShouldHaveTheSameElementsAs( new ColorRule("red"), new ColorRule("green"), new ColorRule("blue")); }
public void returns_all_rules_of_a_type() { var rules = new AccessorRules(); rules.Add <Target1>(x => x.Name, new ColorRule("red")); rules.Add <Target1>(x => x.Name, new ColorRule("green")); rules.Add <Target1>(x => x.Name, new ColorRule("blue")); rules.Add <Target1>(x => x.Name, new FooPolicy()); rules.Add <Target1>(x => x.Name, new BarPolicy()); rules.AllRulesFor <Target1, IRule>(x => x.Name).ShouldHaveTheSameElementsAs( new ColorRule("red"), new ColorRule("green"), new ColorRule("blue")); }
public void SetUp() { theRules = new AccessorRules(); a1 = accessor(x => x.Prop1); a2 = accessor(x => x.Prop2); a3 = accessor(x => x.Prop3); theRules.Add(a1, new RequiredFieldRule()); theRules.Add(a3, new EmailFieldRule()); theRules.Add(a3, new GreaterThanZeroRule()); theSource = new AccessorRulesFieldSource(theRules); }
public static Task Compile(BehaviorGraph graph, IPerfTimer timer) { return(TypeRepository.FindTypes(graph.AllAssemblies(), TypeClassification.Concretes | TypeClassification.Closed, IsAccessorRule) .ContinueWith(t => { var rules = new AccessorRules(); t.Result.Distinct() .Select(x => Activator.CreateInstance(x).As <IAccessorRulesRegistration>()) .Each(x => x.AddRules(rules)); graph.Settings.Replace(rules); })); }
private IServiceLocator services() { var rules = new AccessorRules(); var overrides = new AccessorRulesValidationOverrides(); overrides.As <IAccessorRulesRegistration>().AddRules(rules); var services = new InMemoryServiceLocator(); services.Add(rules); return(services); }
public void add_and_retrieve_rules_by_accessor() { var rules = new AccessorRules(); rules.Add<Target1>(x => x.Name, new FooRule()); rules.Add<Target2>(x => x.Name, new BarRule()); rules.Add<Target1>(x => x.Age, new ColorRule("red")); rules.Add<Target2>(x => x.Age, new ColorRule("green")); rules.FirstRule<Target1, IRule>(x => x.Name).ShouldBeOfType<FooRule>(); rules.FirstRule<Target2, IRule>(x => x.Name).ShouldBeOfType<BarRule>(); rules.FirstRule<Target1, IRule>(x => x.Age).ShouldBeOfType<ColorRule>().Color.ShouldEqual("red"); rules.FirstRule<Target2, IRule>(x => x.Age).ShouldBeOfType<ColorRule>().Color.ShouldEqual("green"); }
public static Task Compile(BehaviorGraph graph, IPerfTimer timer) { return TypeRepository.FindTypes(graph.AllAssemblies(), TypeClassification.Concretes | TypeClassification.Closed, IsAccessorRule) .ContinueWith(t => { var rules = new AccessorRules(); t.Result.Distinct() .Select(x => Activator.CreateInstance(x).As<IAccessorRulesRegistration>()) .Each(x => x.AddRules(rules)); graph.Settings.Replace(rules); }); }
public void add_and_retrieve_rules_by_accessor() { var rules = new AccessorRules(); rules.Add <Target1>(x => x.Name, new FooRule()); rules.Add <Target2>(x => x.Name, new BarRule()); rules.Add <Target1>(x => x.Age, new ColorRule("red")); rules.Add <Target2>(x => x.Age, new ColorRule("green")); rules.FirstRule <Target1, IRule>(x => x.Name).ShouldBeOfType <FooRule>(); rules.FirstRule <Target2, IRule>(x => x.Name).ShouldBeOfType <BarRule>(); rules.FirstRule <Target1, IRule>(x => x.Age).ShouldBeOfType <ColorRule>().Color.ShouldEqual("red"); rules.FirstRule <Target2, IRule>(x => x.Age).ShouldBeOfType <ColorRule>().Color.ShouldEqual("green"); }
public static void Compile(BehaviorGraph graph) { graph.Settings.Replace(() => { return(PackageRegistry.Timer.Record("Finding AccessorRules", () => { var rules = new AccessorRules(); graph.Types() .TypesMatching( x => x.CanBeCastTo <IAccessorRulesRegistration>() && x.IsConcreteWithDefaultCtor() && !x.IsOpenGeneric()) . Distinct().Select(x => Activator.CreateInstance(x).As <IAccessorRulesRegistration>()) .Each(x => x.AddRules(rules)); return rules; })); }); }
public static void Compile(BehaviorGraph graph) { graph.Settings.Replace(() => { return PackageRegistry.Timer.Record("Finding AccessorRules", () => { var rules = new AccessorRules(); graph.Types() .TypesMatching( x => x.CanBeCastTo<IAccessorRulesRegistration>() && x.IsConcreteWithDefaultCtor() && !x.IsOpenGeneric()) . Distinct().Select(x => Activator.CreateInstance(x).As<IAccessorRulesRegistration>()) .Each(x => x.AddRules(rules)); return rules; }); }); }
public void SetUp() { theOverrides = new AccessorRules(); thePolicy = new AccessorOverrideElementBuilderPolicy(theOverrides, "C1", "P1"); }
public AccessorRulesFieldSource(AccessorRules rules) { _rules = rules; }
public Visitor(AccessorRules rules) { _rules = rules; }
private static void lookForAccessorOverrides(BehaviorGraph graph) { graph.Settings.Replace(() => { var rules = new AccessorRules(); TypePool.AppDomainTypes() .TypesMatching( x => x.CanBeCastTo<IAccessorRulesRegistration>() && x.IsConcreteWithDefaultCtor() && !x.IsOpenGeneric()) . Distinct().Select(x => { return Activator.CreateInstance(x).As<IAccessorRulesRegistration>(); }) .Each(x => x.AddRules(rules)); return rules; }); }
public AccessorOverrideElementBuilderPolicy(AccessorRules rules, string category, string profile) { _rules = rules; _category = category; _profile = profile; }
void IAccessorRulesRegistration.AddRules(AccessorRules rules) { _registrations.Each(x => x(rules)); }