public void CheckPassTheRules() { this.product_quantity.Add(product1, 1); this.product_quantity.Add(product2, 1); Func <ShoppingBasket, bool> f = new Func <ShoppingBasket, bool>(CheckTotalWeightNoMoreThan400); IRule r = new Rule(f); policyTest.AddRule(r); Assert.IsTrue(policyTest.Check(this.shoppingBasket)); }
public void CheckSomeRulesFalse() { Mock <IRule> rule1 = new Mock <IRule>(); rule1.Setup(r => r.Check(It.IsAny <ShoppingBasket>())).Returns(true); Mock <IRule> rule2 = new Mock <IRule>(); rule2.Setup(r => r.Check(It.IsAny <ShoppingBasket>())).Returns(false); Policy policy = new Policy(); policy.AddRule(rule1.Object); policy.AddRule(rule2.Object); Assert.AreEqual(false, policy.Check(shoppingBasket)); }
public async Task CheckConditionPoliciesFirstFalseSecondFalse() { await this.shoppingBasket.addProduct(product1, 1); await this.shoppingBasket.addProduct(product2, 2); Mock <IRule> rule1 = new Mock <IRule>(); rule1.Setup(r => r.Check(It.IsAny <ShoppingBasket>())).Returns(false); Mock <IRule> rule2 = new Mock <IRule>(); rule2.Setup(r => r.Check(It.IsAny <ShoppingBasket>())).Returns(false); Policy legalPolicy1 = new Policy(rule1.Object); Policy conditionPolicy = legalPolicy1.Condition(rule2.Object); Assert.IsTrue(conditionPolicy.Check(shoppingBasket)); }
public async Task CheckOrPolicies() { await this.shoppingBasket.addProduct(product1, 1); await this.shoppingBasket.addProduct(product2, 2); Mock <IRule> rule1 = new Mock <IRule>(); rule1.Setup(r => r.Check(It.IsAny <ShoppingBasket>())).Returns(true); Mock <IRule> rule2 = new Mock <IRule>(); rule2.Setup(r => r.Check(It.IsAny <ShoppingBasket>())).Returns(true); Policy legalPolicy1 = new Policy(rule1.Object); Policy orPolicy = legalPolicy1.Or(rule2.Object); Assert.IsTrue(orPolicy.Check(shoppingBasket)); }