public void WhenItemsDiscounted_TotalIsCorrect() { var basket = new Basket(carrierBagProvider); var discount = new MultiBuyDiscount(2, 10); var item1 = new Item('A', 20, discount); var item2 = new Item('A', 20, discount); basket.Scan(item1); basket.Scan(item2); Assert.AreEqual(35, basket.GetTotalPrice()); }
public void WhenMixOfDiscountAndNonDiscountItems_TotalIsCorrect() { var basket = new Basket(carrierBagProvider); var buyThreeSave20 = new MultiBuyDiscount(3, 20); var apple = new Item('A', 50, buyThreeSave20); var buyTwoSave15 = new MultiBuyDiscount(2, 15); var grape = new Item('B', 30, buyTwoSave15); var cherry = new Item('C', 20); var melon = new Item('D', 15); basket.Scan(apple); basket.Scan(apple); basket.Scan(apple); basket.Scan(grape); basket.Scan(grape); basket.Scan(cherry); basket.Scan(melon); Assert.AreEqual(220, basket.GetTotalPrice()); }
public void WhenDiscountTotalIsLessThanOne_ExceptionThrown() { var discount = new MultiBuyDiscount(3, 0); }
public void WhenDiscountAppliedToLessThanOneItem_ExceptionThrown() { var discount = new MultiBuyDiscount(0, 10); }