public void ShoppingCartByCoupon_BelowDiscountThreshold() { // arrange ShoppingCartByCoupon shoppingCart = new ShoppingCartByCoupon(new ShoppingCart(), 5, 100); ProductSellFactory productSellFactory = new ProductSellFactory(); ProductSellByWeight p1 = (ProductSellByWeight)productSellFactory.GetProductSell(ProductSellType.byWeight); p1.productId = 124; p1.productName = "Apple"; p1.unitPrice = 2.49m; p1.addWeight(2.4m); ProductSellByQuantity p2 = (ProductSellByQuantity)productSellFactory.GetProductSell(ProductSellType.byQuantity); p2.productId = 276; p2.productName = "Boxes of Cheerios"; p2.unitPrice = 6.99m; p2.addQuantity(4); ProductSellByQuantityInGroupSell p3 = (ProductSellByQuantityInGroupSell)productSellFactory.GetProductSell(ProductSellType.byQuantityInGroupSell); p3.productId = 312; p3.productName = "Body Shampoo"; p3.unitPrice = 12.99m; p3.addQuantity(3); p3.discountThreshold = 3; ProductSellByQuantityInGroupSell p4 = (ProductSellByQuantityInGroupSell)productSellFactory.GetProductSell(ProductSellType.byQuantityInGroupSell); p4.productId = 312; p4.productName = "Body Shampoo"; p4.unitPrice = 12.99m; p4.addQuantity(1); p4.discountThreshold = 3; //act shoppingCart.add((ProductSell)p1); shoppingCart.add((ProductSell)p2); shoppingCart.add((ProductSell)p3); shoppingCart.add((ProductSell)p4); decimal totalPrice = shoppingCart.getTotalPrice(); int totalItemNumber = shoppingCart.getTotalItemNumber(); //72.906 - 0 => 72.906 // assert const decimal expectedTotalPrice = (2.49m * 2.4m + 6.99m * 4 + 12.99m * 3); const int expectedTotalItemNumber = 3; Assert.AreEqual(expectedTotalPrice, totalPrice); Assert.AreEqual(expectedTotalItemNumber, totalItemNumber); }
public void ShoppingCartByCoupon_InValidTotalPriceDiscountThreshold() { // arrange ShoppingCartByCoupon shoppingCart = new ShoppingCartByCoupon(new ShoppingCart(), -1, 100); ProductSellFactory productSellFactory = new ProductSellFactory(); ProductSellByWeight p1 = (ProductSellByWeight)productSellFactory.GetProductSell(ProductSellType.byWeight); p1.productId = 124; p1.productName = "Apple"; p1.unitPrice = 2.49m; p1.addWeight(2.4m); //act shoppingCart.add((ProductSell)p1); decimal totalPrice = shoppingCart.getTotalPrice(); int totalItemNumber = shoppingCart.getTotalItemNumber(); // assert //Must throw ArgumentOutOfRangeException : DiscountCouponValue does not contain a valid value. }