public void Validate_ByJson_True() { // Arrange const string expression = @"(f.Age > 3 && f.Income < 50000) || f.NumberOfChildren > 2"; var p = new { Age = 37, Income = 45000, NumberOfChildren = 3 }; var jp = Newtonsoft.Json.Linq.JObject.Parse(Newtonsoft.Json.JsonConvert.SerializeObject(p)); var ruleEngine = new RuleEngine.Kernel(); // Act var result = ruleEngine.Validate(jp, expression); // Assert Assert.True(result); }
public void Validate_False() { // Arrange const string expression = @"(f.Age > 3 && f.Income > 100000) || f.NumberOfChildren > 5"; var p = new Person { Age = 37, Income = 45000, NumberOfChildren = 3 }; var ruleEngine = new RuleEngine.Kernel(); // Act var result = ruleEngine.Validate(p, expression); // Assert Assert.False(result); }
public void ValidateCollection_True() { // Arrange var people = new List <Person> { new Person { Name = "John", Gender = Gender.Male, Age = 23, Income = 24000, NumberOfChildren = 0 }, new Person { Name = "Mary", Gender = Gender.Female, Age = 22, Income = 23000, NumberOfChildren = 1 } }; const string expression = "f.Any(p => p.Name.Equals(\"John\") && p.Age < 24)"; var ruleEngine = new RuleEngine.Kernel(); // Act var result = ruleEngine.Validate <IEnumerable <Person> >(people, expression); // Assert Assert.True(result); }