Example #1
0
        public void ItemExists_ReturnsItemPrice()
        {
            //Arrange
            var priceStrategies = new IItemPriceStrategy[]
            {
                new BasketItemSkuAItemPriceStrategy()
            };

            var basket        = new Basket();
            var basketService = new BasketService(basket, priceStrategies);

            basketService.AddItem(new BasketItemSkuA());

            //Act
            var totalPrice = basketService.GetTotal();

            //Assert
            Assert.Equal(new BasketItemSkuA().Price, totalPrice);
        }
        public void ThreeForFortyPromotion_OneExists_ReturnsItemPrice()
        {
            //Arrange
            var priceStrategies = new IItemPriceStrategy[]
            {
                new BasketItemSkuBItemPriceStrategy()
            };

            var basket = new Basket();

            basket.AddItem(new BasketItemSkuB());

            var basketService = new BasketService(basket, priceStrategies);

            //Act
            var totalPrice = basketService.GetTotal();

            //Assert
            Assert.Equal(new BasketItemSkuB().Price, totalPrice);
        }
Example #3
0
        public void PercentageOffPromotion_MultipleD_ReturnsTotalDiscountedPrice()
        {
            //Arrange
            var priceStrategies = new IItemPriceStrategy[]
            {
                new BasketItemSkuDItemPriceStrategy()
            };

            var basket = new Basket();

            basket.AddItem(new BasketItemSkuD());
            basket.AddItem(new BasketItemSkuD());

            var basketService = new BasketService(basket, priceStrategies);

            //Act
            var totalPrice = basketService.GetTotal();

            //Assert
            Assert.Equal((decimal)82.50, totalPrice);
        }