Beispiel #1
0
        public void SimpleRuleLoaderPersonTest()
        {
            Person person = new Person()
            {
                Name = "Mathias", Age = 36, Children = 2, Married = true
            };
            RuleLoader ruleLoader = new RuleLoader();
            // new Rule("Age", Operator.LessThanOrEqual, 50);
            Rule rule = ruleLoader.Load(2);

            RuleEngine.RuleEngine ruleEngine = new RuleEngine.RuleEngine();
            var ruleFunc = ruleEngine.CompileRule <Person>(rule);
            var result   = ruleFunc(person);

            Assert.AreEqual(result, true);
        }
        public void SimpleRuleLoaderPersonAddressValidateRulesAll()
        {
            Person person = new Person()
            {
                Name = "Mathias", Age = 36, Children = 2, Married = true
            };
            Adresse adresseOne = new Adresse()
            {
                Street = "Teststreet1", Plz = 3030, City = "New York", ActiveState = true
            };
            Adresse adresseTwo = new Adresse()
            {
                Street = "Teststreet2", Plz = 1010, City = "London", ActiveState = false
            };
            Adresse adresseThree = new Adresse()
            {
                Street = "Teststreet3", Plz = 2020, City = "Paris", ActiveState = false
            };

            person.Adresses_.Add(adresseOne);
            person.Adresses_.Add(adresseTwo);
            person.Adresses_.Add(adresseThree);
            RuleLoader ruleLoader = new RuleLoader();
            // new Rule("City", Operator.Equal, "New York");
            Rule firstAdressRule = ruleLoader.Load(4);
            //return new Rule("City", Operator.Equal, "New York");
            // new Rule("ActiveState", Operator.Equal, true);
            Rule secondAdressRule = ruleLoader.Load(5);

            //new Rule("ActiveState", Operator.Equal, true);
            RuleEngine.RuleEngine ruleEngine = new RuleEngine.RuleEngine();
            var firstAdressRuleFunc          =
                ruleEngine.CompileRule <Adresse>(firstAdressRule);
            var secondAdressRuleFunc =
                ruleEngine.CompileRule <Adresse>(secondAdressRule);
            RuleValidator ruleValidator = new RuleValidator();
            bool          result        = ruleValidator.
                                          ValidateValuesAny(person.Adresses_, firstAdressRuleFunc);

            Assert.AreEqual(result, true);
            result = ruleValidator.
                     ValidateValuesAny(person.Adresses_, secondAdressRuleFunc);
            Assert.AreEqual(result, true);
        }
Beispiel #3
0
        public void SimpleRuleLoaderPersonValidateRulesSum()
        {
            Person person1 = new Person()
            {
                Name = "Mathias", Age = 35, Children = 2
            };
            Person person2 = new Person()
            {
                Name = "Anna", Age = 32, Children = 2
            };
            RuleLoader ruleLoader = new RuleLoader();
            // new Rule("Age", Operator.LessThanOrEqual, 50);
            Rule rule1 = ruleLoader.Load(2);
            // new Rule("Children", Operator.GreaterThan, 0);
            Rule          rule2         = ruleLoader.Load(3);
            RuleValidator ruleValidator = new RuleValidator();
            var           result        = ruleValidator.ValidateRulesSum(
                new Person[] { person1, person2 },
                new Rule[] { rule1, rule2 });

            Assert.AreEqual(result, false);
        }
Beispiel #4
0
        public void SimpleRuleLoaderPersonValidateRulesAll()
        {
            Person person1 = new Person()
            {
                Name = "Mathias", Age = 36, Children = 2, Married = true
            };
            Person person2 = new Person()
            {
                Name = "Anna", Age = 32, Children = 2, Married = false
            };
            RuleLoader ruleLoader = new RuleLoader();
            // new Rule("Age", Operator.LessThanOrEqual, 50);
            Rule rule1 = ruleLoader.Load(2);
            // new Rule("Married", Operator.Equal, true);
            Rule rule2 = ruleLoader.Load(8);

            RuleEngine.RuleEngine ruleEngine = new RuleEngine.RuleEngine();
            var ruleFuncs = ruleEngine.CombineRules <Person>(
                new Rule[] { rule1, rule2 });
            RuleValidator ruleValidator = new RuleValidator();
            var           result        = ruleValidator.ValidateRulesAll(new[] { person1, person2 }, ruleFuncs);

            Assert.AreEqual(result, false);
        }