public void ConvertEqualRuleDataAndCompile() { var ruleData = new RuleData { Field = "Name", Value = "Faenor", RuleOperator = RuleOperator.Equal.ToString(), ValidationMessage = "Name should be equal to Faenor." }; var engine = new RuleEngine(); var translatedRule = engine.Convert(ruleData); var compiledRule = engine.CompileRules <Person>(translatedRule); Assert.IsNotNull(compiledRule.Rule); Assert.AreEqual(ruleData.Field, translatedRule.LeftNode); Assert.AreEqual(ruleData.Value, translatedRule.RightNode); Assert.AreEqual(ruleData.ValidationMessage, translatedRule.ValidationMessage); Assert.AreEqual("Name should be equal to Faenor.", compiledRule.ValidationMessage); }
public void ExecuteEqualRuleOnFlatPropertyFailed() { const string message = "Name should be equal to Faenor."; var rule = new RuleFactory().Create(RuleOperator.Equal); rule.LeftNode = "Name"; rule.RightNode = "Faenor"; rule.ValidationMessage = message; var person = new Person { Name = "Finwe" }; var engine = new RuleEngine(); var compiledRule = engine.CompileRules <Person>(rule); var result = engine.Validate(person, compiledRule); Assert.AreEqual(false, result.Passed); Assert.AreNotEqual(0, result.ValidationMessageSummary.Length); Assert.AreEqual(message, result.ValidationMessageSummary); }
public void ExecuteConvertNullObjectRuleData() { var ruleData = new RuleData { Field = "Name", Value = "Faenor", RuleOperator = "", ValidationMessage = "Name should be equal to Faenor." }; var person = new Person { Name = "Faenor" }; var engine = new RuleEngine(); var translatedRule = engine.Convert(ruleData); var compiledRule = engine.CompileRules <Person>(translatedRule); var validationResult = engine.Validate(person, compiledRule); Assert.IsTrue(validationResult.Passed); Assert.AreEqual(string.Empty, validationResult.ValidationMessageSummary); }