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)); }
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)); }