public void ReturnsEmptyLogIfnoRules() { var evaluator = new RuleEvaluator(new List <IPaymentRule>()); var actual = evaluator.Run(new Payment { }); Assert.Empty(actual); }
public void RunRulesOnAnOrderAndReturnRuleLog() { var evaluator = new RuleEvaluator(new List <IPaymentRule>()); var actual = evaluator.Run(new Payment { }); Assert.IsType(typeof(List <RuleLog>), actual); }
public void SkipNotApplicableRules() { var paymentRule = new Mock <IPaymentRule>(); paymentRule.Setup(r => r.IsApplicable(It.IsAny <Item>())).Returns(false); paymentRule.Verify(r => r.Apply(It.IsAny <Item>()), Times.AtMostOnce()); var evaluator = new RuleEvaluator(new List <IPaymentRule>()); var actual = evaluator.Run(new Payment { }); paymentRule.Verify(r => r.Apply(It.IsAny <Item>()), Times.Never()); }