Пример #1
0
        public void CalculateBasketWithBeansAndBreadDiscount()
        {
            var basket = new Basket();

            basket.AddBasketItem(Products.GetProduct("Beans"));
            basket.AddBasketItem(Products.GetProduct("Beans"));
            basket.AddBasketItem(Products.GetProduct("Bread"));

            var calculator = new BasketCalculator(Products, Promotions, basket);

            calculator.CalculateBasket(new DateTime(2020, 6, 18));

            calculator.SubTotal.ShouldBe(new decimal(2.10));
            calculator.DiscountsItems.Count.ShouldBe(1);
            calculator.DiscountsItems[0].Amount.ShouldBe(new decimal(.40));
            calculator.Total.ShouldBe(new decimal(1.70));
        }
Пример #2
0
        public void CalculateBasketWithOutAppleDiscountAsPromotionExpired()
        {
            var basket = new Basket();

            basket.AddBasketItem(Products.GetProduct("Apples"));
            basket.AddBasketItem(Products.GetProduct("Milk"));
            basket.AddBasketItem(Products.GetProduct("Bread"));

            var calculator = new BasketCalculator(Products, Promotions, basket);

            //Use an date in the future after promotion ended
            calculator.CalculateBasket(new DateTime(2021, 6, 18));

            calculator.SubTotal.ShouldBe(new decimal(3.10));
            calculator.DiscountsItems.Count.ShouldBe(0);
            calculator.Total.ShouldBe(new decimal(3.10));
        }