public void Rule1_Validate_NotMathcingItem3A_ShouldReturnFalse() { //Arrange ShoppingCart shoppingCart = new ShoppingCart(); shoppingCart.ShoppingCartItem.Add(new ShoppingCartItem() { PromotioApplied = false, SKU = new SKU() { Name = "A", Price = 50 } }); shoppingCart.ShoppingCartItem.Add(new ShoppingCartItem() { PromotioApplied = false, SKU = new SKU() { Name = "A", Price = 50 } }); var rules = new JsonRuleRepository().GetRules(); var rule = rules.Where(t => t.RuleCode.Equals("Rule1")).Single(); //Act var result = new ConfiguredRule(rule).Validate(shoppingCart); //Assert Assert.AreEqual(false, result); }
public void Rule3_ApplyPromotion_MathcingItemCAndD_ShouldApplyPromotion() { //Arrange ShoppingCart shoppingCart = new ShoppingCart(); shoppingCart.ShoppingCartItem.Add(new ShoppingCartItem() { PromotioApplied = false, SKU = new SKU() { Name = "C", Price = 20 } }); shoppingCart.ShoppingCartItem.Add(new ShoppingCartItem() { PromotioApplied = false, SKU = new SKU() { Name = "D", Price = 15 } }); var rules = new JsonRuleRepository().GetRules(); var rule = rules.Where(t => t.RuleCode.Equals("Rule3")).Single(); //Act new ConfiguredRule(rule).ApplyPromotion(shoppingCart); //Assert Assert.AreEqual(30.0M, shoppingCart.Total); }