Beispiel #1
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 #3
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 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 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);
        }
Beispiel #7
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 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");
        }
Beispiel #9
0
        public void matches_negative_with_no_overrides_for_this_accessor()
        {
            theOverrides.Add <OverrideTarget>(x => x.Age, new ElementTagOverride <SimpleBuilder>("C1", "P1"));

            var request = ElementRequest.For <OverrideTarget>(x => x.Name);

            thePolicy.Matches(request).ShouldBeFalse();
        }