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); }
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); }