public void TestInitialize() { _items = new Items(); _quantityBasedDiscountItem = new QuantityBasedDiscountItem(); _quantityBasedDiscount = new QuantityBasedDiscount(_quantityBasedDiscountItem, _items); }
private static void applyAllDiscounts(OrderBase order) { Discount quantiyDisount1 = new QuantityBasedDiscount("Buy 3A for 130", 3, 130, "A"); Discount quantiyDisount2 = new QuantityBasedDiscount("Buy 2B for 45", 2, 45, "B"); order.AddDiscount(quantiyDisount1); order.AddDiscount(quantiyDisount2); Discount combinedDisount = new CombinedProductsDiscount("BUY C AND D FOR 30 ONLY", 30); combinedDisount.AddApplicableProducts("C"); combinedDisount.AddApplicableProducts("D"); order.AddDiscount(combinedDisount); }
public void HandleDiscountForItemB() { QuantityBasedDiscount quantityBasedDiscount = new QuantityBasedDiscount(); Cart cart = new Cart(); cart.Items = new List <CartItem>(); cart.Items.Add(new CartItem() { Quantity = 2, ProductInfo = new ProductInfo("B", 30) }); quantityBasedDiscount.HandleDiscount(cart); Assert.AreEqual(45, cart.TotalPrice); }
public void HandleDiscountForFiveItemA() { QuantityBasedDiscount quantityBasedDiscount = new QuantityBasedDiscount(); Cart cart = new Cart(); cart.Items = new List <CartItem>(); cart.Items.Add(new CartItem() { Quantity = 5, ProductInfo = new ProductInfo("A", 50) }); quantityBasedDiscount.HandleDiscount(cart); Assert.AreEqual(230, cart.TotalPrice); }
public void HandleDiscountForNegativeFiveItemA() { QuantityBasedDiscount quantityBasedDiscount = new QuantityBasedDiscount(); Cart cart = new Cart(); cart.Items = new List <CartItem>(); cart.Items.Add(new CartItem() { Quantity = -5, ProductInfo = new ProductInfo("A", 50) }); quantityBasedDiscount.HandleDiscount(cart); // handle negative price before applying promotion Assert.AreEqual(-250, cart.TotalPrice); }
public void QuantityBasedDiscount_SetNextRule_ShouldNotFailForNull() { QuantityBasedDiscount quantityBasedDiscount = new QuantityBasedDiscount(); quantityBasedDiscount.SetNextRule(null); }
public void QuantityBasedDiscount_ShouldNotFailForEmptyCart() { QuantityBasedDiscount quantityBasedDiscount = new QuantityBasedDiscount(); quantityBasedDiscount.HandleDiscount(new Cart()); }
public void QuantityBasedDiscount_ShouldNotFailForNull() { QuantityBasedDiscount quantityBasedDiscount = new QuantityBasedDiscount(); quantityBasedDiscount.HandleDiscount(null); }