Beispiel #1
0
        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);
        }
Beispiel #2
0
        public static void BuildHtmlConventionLibrary(HtmlConventionLibrary library, AccessorRules rules)
        {
            library.Import(new DefaultHtmlConventions().Library);

            var visitor = new Visitor(rules);

            library.For <ElementRequest>().AcceptVisitor(visitor);
        }
Beispiel #3
0
        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"));
        }
Beispiel #5
0
        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 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);
            }));
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
        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;
                }));
            });
        }
Beispiel #15
0
        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;
 }
Beispiel #18
0
 public void SetUp()
 {
     theOverrides = new AccessorRules();
     thePolicy    = new AccessorOverrideElementBuilderPolicy(theOverrides, "C1", "P1");
 }
 public Visitor(AccessorRules rules)
 {
     _rules = rules;
 }
Beispiel #20
0
        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 AccessorRulesFieldSource(AccessorRules rules)
 {
     _rules = rules;
 }
 public AccessorOverrideElementBuilderPolicy(AccessorRules rules, string category, string profile)
 {
     _rules    = rules;
     _category = category;
     _profile  = profile;
 }
 public AccessorOverrideElementBuilderPolicy(AccessorRules rules, string category, string profile)
 {
     _rules = rules;
     _category = category;
     _profile = profile;
 }
Beispiel #24
0
 void IAccessorRulesRegistration.AddRules(AccessorRules rules)
 {
     _registrations.Each(x => x(rules));
 }