public void GetPrice_OfferApplied_SumWithDiscount()
        {
            //arrange
            var productsInBacket = new BasketProduct
            {
                BasketProductId = "1-1",
                Price = 10
            };

            var basketWithOffer = new BasketProductWithOffer
            {
                BasketProductId = "1-1",
                OfferPrice = 8
            };

            offerRepository.Setup(o => o.GetOffers()).Returns(new List<IOffer> { offer1.Object });

            offer1.Setup(o => o.GetProductsWithOffersAttached(It.IsAny<IList<BasketProduct>>())).Returns(new List<BasketProductWithOffer>
            {
               basketWithOffer
            });

            //act
            var result = priceCalculator.GetPrice(new List<BasketProduct> { productsInBacket });

            //assert
            Assert.AreEqual(basketWithOffer.OfferPrice, result);
        }
        public void GetPrice_NoOffersApplied_TotalSameAsProductValue()
        {
            //arrange
            var productsInBacket = new BasketProduct
            {
                BasketProductId = "1-1",
                Price = 10
            };

            offerRepository.Setup(o => o.GetOffers()).Returns(new List<IOffer> { offer1.Object });

            offer1.Setup(o => o.GetProductsWithOffersAttached(It.IsAny<IList<BasketProduct>>())).Returns(new List<BasketProductWithOffer>());

            //act
            var result = priceCalculator.GetPrice(new List<BasketProduct> { productsInBacket });

            //assert
            Assert.AreEqual(productsInBacket.Price, result);
        }