Esempio n. 1
0
        public MPRuleSetResult AllRulesPass(List <IRule> rules, Dictionary <string, object> testData)
        {
            var result = new MPRuleSetResult();

            if (!rules.Any())
            {
                return new MPRuleSetResult()
                       {
                           AllRulesPass = true,
                           RuleResults  = new List <MPRuleResult>
                           {
                               new MPRuleResult()
                               {
                                   Message    = "No Rules Present",
                                   RulePassed = true
                               }
                           }
                       }
            }
            ;
            foreach (var rule in rules)
            {
                result.RuleResults.Add(rule.RulePasses(testData));
            }
            result.AllRulesPass = result.RuleResults.All(r => r.RulePassed);
            return(result);
        }
Esempio n. 2
0
        public void ShouldVerifyRulesetIfAtLeastOneRulesetPasses()
        {
            const int ruleset1Id = 789;
            const int ruleset2Id = 9008;

            var rulesets = new List <MPProductRuleSet>
            {
                FactoryGirl.NET.FactoryGirl.Build <MPProductRuleSet>(r => { r.ProductId = r.ProductId + 2; r.RulesetId = ruleset1Id; }),
                FactoryGirl.NET.FactoryGirl.Build <MPProductRuleSet>(r => { r.ProductId = r.ProductId + 3; r.RulesetId = ruleset2Id; })
            };

            var rules1    = new List <IRule>();
            var startDate = DateTime.Today.AddDays(-30);

            rules1.Add(new GenderRule(startDate, null, 1));
            rules1.Add(new RegistrationRule(startDate, null, 1000));

            var result1 = new MPRuleSetResult
            {
                AllRulesPass = true,
                RuleResults  = new List <MPRuleResult>()
            };

            _rulesetRepository.Setup(m => m.GetRulesInRuleset(ruleset1Id)).Returns(rules1);
            _rulesetRepository.Setup(m => m.AllRulesPass(rules1, It.IsAny <Dictionary <string, object> >())).Returns(result1);
            var res = _fixture.VerifyRulesets(rulesets, new Dictionary <string, object>());

            Assert.IsTrue(res);
        }