private IDiscountHandler GetDefaultDiscountHandler() { var tierOneDiscountHandler = new QuantityPriceDiscountHandler(1000, 20, .1d); var tierTwoDiscountHandler = new QuantityPriceDiscountHandler(2000, 10, .2d); var tierThreeDiscountHandler = new QuantityPriceDiscountHandler(5000, 5, .2d); tierOneDiscountHandler.SetNext(tierTwoDiscountHandler).SetNext(tierThreeDiscountHandler); return(tierOneDiscountHandler); }
public void Handle_ReturnsZero_WhenQuantityPriceNotMet() { var discount = new QuantityPriceDiscountHandler(1, 5, .5d); var bike = new Bike(string.Empty, string.Empty, 2); var line = new Line(bike, 1); double discountAmount = discount.Handle(line); Assert.AreEqual(discountAmount, 0d); }
public void Handle_ReturnsDiscount_WhenQuantityPriceMet() { var discount = new QuantityPriceDiscountHandler(1, 5, .5d); var bike = new Bike(string.Empty, string.Empty, 1); var line = new Line(bike, 6); double discountAmount = discount.Handle(line); Assert.AreEqual(discountAmount, line.GetChargeAmount() - discountAmount); }