public static int Checkout(string skus) { var checkoutPricer = new CheckoutPricer( new InMemoryPriceDatabase()); return(checkoutPricer.CalculatePrice(skus)); }
public void ItHasTheCorrectPrice() { var priceDatabase = new Mock <IPriceDatabase>(); priceDatabase.Setup(x => x.GetIndividualPriceFor('X')) .Returns(10); var checkoutPricer = new CheckoutPricer(priceDatabase.Object); Assert.That(checkoutPricer.CalculatePrice("X"), Is.EqualTo(10)); }
public void ThePriceIsMinusOne() { var priceDatabase = new Mock <IPriceDatabase>(); priceDatabase.Setup(x => x.GetIndividualPriceFor('X')) .Throws(new SkuInvalidException('X')); var checkoutPricer = new CheckoutPricer(priceDatabase.Object); Assert.That(checkoutPricer.CalculatePrice("X"), Is.EqualTo(-1)); }
public void ThePriceIsTheSumOfTheTwoSkuPrices() { var priceDatabase = new Mock <IPriceDatabase>(); priceDatabase.Setup(x => x.GetIndividualPriceFor('X')) .Returns(10); priceDatabase.Setup(x => x.GetIndividualPriceFor('Y')) .Returns(5); var checkoutPricer = new CheckoutPricer(priceDatabase.Object); Assert.That(checkoutPricer.CalculatePrice("XY"), Is.EqualTo(15)); }
public void BuyingSeveralItemsHasTheCorrectPrice(string skus, int correctPrice) { var checkoutPricer = new CheckoutPricer(priceDatabase.Object); Assert.That(checkoutPricer.CalculatePrice(skus), Is.EqualTo(correctPrice)); }
public void TheCustomerIsNotRippedOff(string skus, int correctPrice) { var checkoutPricer = new CheckoutPricer(priceDatabase.Object); Assert.That(checkoutPricer.CalculatePrice(skus), Is.EqualTo(correctPrice)); }