public void ByWeightLineItemWithBulkDiscountHasCorrectPriceTest() { // Arrange const int id = 1; const double weightInKilos = 2.00; // pricePerKilo = 5.00m ILineItem byWeightLineItem = new ByWeightLineItem(id, weightInKilos); const decimal expectedPrice1 = 9.00m; const decimal expectedPrice2 = 10.00m; // Lineitem is above bulk discount threshold of $20.00, therefore has 10% discount BulkDiscountLineItem bulkDiscountLineItem1 = new BulkDiscountLineItem(byWeightLineItem) { DiscountThreshold = 10.00m, DiscountPercentage = 10 }; // Lineitem is below bulk discount threshold of $40.00, therefore has no discount BulkDiscountLineItem bulkDiscountLineItem2 = new BulkDiscountLineItem(byWeightLineItem) { DiscountThreshold = 20.00m, DiscountPercentage = 10 }; // Act decimal actualPrice1 = bulkDiscountLineItem1.GetPrice(); decimal actualPrice2 = bulkDiscountLineItem2.GetPrice(); // Assert Assert.Multiple(() => { Assert.That(actualPrice1, Is.EqualTo(expectedPrice1)); Assert.That(actualPrice2, Is.EqualTo(expectedPrice2)); }); }
public void ByWeightLineItemWithCouponDiscountHasCorrectPriceTest() { // Arrange // pricePerKilo = 5.00m ILineItem byWeightLineItem1 = new ByWeightLineItem(1, 2.00); ILineItem byWeightLineItem2 = new ByWeightLineItem(1, 8.00); const decimal expectedPrice1 = 10.00m; const decimal expectedPrice2 = 25.00m; // Does not qualify for discount since price < discount CouponDiscountLineItem couponDiscountLineItem1 = new CouponDiscountLineItem(byWeightLineItem1) { CouponDiscount = 15.00m }; // Qualifies for discount since price > discount CouponDiscountLineItem couponDiscountLineItem2 = new CouponDiscountLineItem(byWeightLineItem2) { CouponDiscount = 15.00m }; // Act decimal actualPrice1 = couponDiscountLineItem1.GetPrice(); decimal actualPrice2 = couponDiscountLineItem2.GetPrice(); // Assert Assert.Multiple(() => { Assert.That(actualPrice1, Is.EqualTo(expectedPrice1)); Assert.That(actualPrice2, Is.EqualTo(expectedPrice2)); }); }
public void ByWeightLineItemHasCorrectPriceTest() { // Arrange const int id = 1; const double weightInKilos = 5.0; ILineItem byWeightLineItem = new ByWeightLineItem(id, weightInKilos); const decimal expectedPrice = 25.00m; // Act decimal actualPrice = byWeightLineItem.GetPrice(); // Assert Assert.That(actualPrice, Is.EqualTo(expectedPrice)); }
public void ShoppingCartWithByWeightLineItemHasCorrectPriceTest() { // Arrange IShoppingCart shoppingCart = new ShoppingCart(); ILineItem byWeightLineItem = new ByWeightLineItem(1, 5); const decimal expectedPrice = 25.00m; // Act shoppingCart.Add(byWeightLineItem); decimal actualPrice = shoppingCart.GetPrice(); // Assert Assert.That(actualPrice, Is.EqualTo(expectedPrice)); }