コード例 #1
0
        public IEnumerable <string> GetFailingRules(string jsonObject, IEnumerable <string> easyRules)
        {
            var dymeRules        = easyRules.Select(r => _easyRuleDymeRuleSvc.ConvertEasyRuleToDymeRule(r)).ToList();
            var failingDymeRules = dymeRules.Where(r => !_ruleEvaluatorSvc.IsTrueIn(r, jsonObject)).ToList();
            var failingEasyRules = failingDymeRules.Select(r => _easyRuleDymeRuleSvc.ConvertDymeRuleToEasyRule(r)).ToList();

            return(failingEasyRules);
        }
コード例 #2
0
        public void EasyRuleDymeParser_GivenDymeRules_ExpectEasyRules()
        {
            // Arrange...
            var sut            = new EasyRuleDymeRuleConverter();
            var expectEasyRule = "IF (Age) IS (18) THEN (Movie) IS (Visible)";
            var inputDymeRule  = If.When(ItsAFact.That("Age").Is("18")).Then(ItsAFact.That("Movie").Is("Visible"));
            // Act...
            var result = sut.ConvertDymeRuleToEasyRule(inputDymeRule);

            Assert.AreEqual(expectEasyRule, result);
        }
コード例 #3
0
        public void EasyRuleDymeParser_GivenNestedDymeRules_ExpectEasyRules()
        {
            // Arrange...
            var sut            = new EasyRuleDymeRuleConverter();
            var expectEasyRule = "IF (age) GREATER THAN (18) OR ((age) LESS THAN (100) AND (date) PART OF (2000/01/01)) THEN (movie) IS (visible) AND (warnings) CONTAINS (violence)";
            var inputDymeRule  =
                If.When(Any.Of
                            (ItsAFact.That("age").IsGreaterThan("18"))
                        .Or
                            (All.Of(ItsAFact.That("age").IsLessThan("100")).And(ItsAFact.That("date").IsIn("2000/01/01")).IsTrue())
                        .IsTrue())
                .Then(All.Of
                          (ItsAFact.That("movie").Is("visible"))
                      .And
                          (ItsAFact.That("warnings").Contains("violence"))
                      .IsTrue());
            // Act...
            var result = sut.ConvertDymeRuleToEasyRule(inputDymeRule);

            Assert.AreEqual(expectEasyRule, result);
        }
コード例 #4
0
        public void EasyRuleDymeParser_GivenBothJunctiveDymeRules_ExpectEasyRules()
        {
            // Arrange...
            var sut            = new EasyRuleDymeRuleConverter();
            var expectEasyRule = "IF (age) IS (10) OR (genre) IS (cartoon) THEN (movie) IS (visible) AND (there) NOT (violence)";
            var inputDymeRule  =
                If.When(Any.Of
                            (ItsAFact.That("age").Is("10"))
                        .Or
                            (ItsAFact.That("genre").Is("cartoon"))
                        .IsTrue())
                .Then(All.Of
                          (ItsAFact.That("movie").Is("visible"))
                      .And
                          (ItsAFact.That("there").IsNot("violence"))
                      .IsTrue());
            // Act...
            var result = sut.ConvertDymeRuleToEasyRule(inputDymeRule);

            Assert.AreEqual(expectEasyRule, result);
        }