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); }
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); }
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); }