示例#1
0
        public void Evaluate_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.Evaluate <Person, bool>(p, expression);

            // Assert
            Assert.False(result);
        }
        public void EvaluateCollection_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.Evaluate <IEnumerable <Person>, bool>(people, expression);

            // Assert
            Assert.True(result);
        }