Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        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);
 }