예제 #1
0
        public void ReturnsEmptyLogIfnoRules()
        {
            var evaluator = new RuleEvaluator(new List <IPaymentRule>());
            var actual    = evaluator.Run(new Payment {
            });

            Assert.Empty(actual);
        }
예제 #2
0
        public void RunRulesOnAnOrderAndReturnRuleLog()
        {
            var evaluator = new RuleEvaluator(new List <IPaymentRule>());
            var actual    = evaluator.Run(new Payment {
            });

            Assert.IsType(typeof(List <RuleLog>), actual);
        }
예제 #3
0
        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());
        }