public void GivenNoScannedItems_TotalReturnsZero() { const decimal expectedTotal = 0; var priceReader = new MemoryPriceReader(); var promotionCalculator = new PromotionCalculator(); var checkout = new Checkout(priceReader, promotionCalculator); var total = checkout.Total(); Assert.AreEqual(expectedTotal, total); }
public void ScanOneProduct_TotalReturnsPrice() { const decimal expectedTotal = 0.5m; var priceReader = new MemoryPriceReader(); var promotionCalculator = new PromotionCalculator(); var checkout = new Checkout(priceReader, promotionCalculator); var item = new Item("A99"); checkout.Scan(item); var total = checkout.Total(); Assert.AreEqual(expectedTotal, total); }
public void ScanTwoProducts_TotalReturnsPriceOfBoth() { const decimal expectedTotal = 0.8m; var priceReader = new MemoryPriceReader(); var promotionCalculator = new PromotionCalculator(); var checkout = new Checkout(priceReader, promotionCalculator); var itemA = new Item("A99"); var itemB = new Item("B15"); checkout.Scan(itemA); checkout.Scan(itemB); var total = checkout.Total(); Assert.AreEqual(expectedTotal, total); }
public void TwoB15_Returns045() { const decimal expectedTotal = 0.45m; var priceReader = new MemoryPriceReader(); var promotions = new List <IPromotion> { new A99Promotion(), new B15Promotion() }; var promotionCalculator = new PromotionCalculator(promotions); var checkout = new Checkout(priceReader, promotionCalculator); var item = new Item("B15"); checkout.Scan(item); checkout.Scan(item); var total = checkout.Total(); Assert.AreEqual(expectedTotal, total); }