public void DiscountIsZeroWhenNoButterAndOneBread() { LinkedDiscountCalculator breadAndButterDiscount = new LinkedDiscountCalculator(butter, bread, 2, 1, 0.5f); Dictionary <Product, int> oneBreadNoButter = new Dictionary <Product, int> { { bread, 1 }, }; decimal discount = breadAndButterDiscount.CalculateDiscount(oneBreadNoButter); decimal expectedDiscount = 0; Assert.AreEqual(expectedDiscount, discount); }
public void DiscountIsOneBreadWhenTwoButterAndThreeBreadFor231() { LinkedDiscountCalculator breadAndButterDiscount = new LinkedDiscountCalculator(butter, bread, 2, 3, 1); Dictionary <Product, int> fourBreadTwoButter = new Dictionary <Product, int> { { bread, 3 }, { butter, 2 } }; decimal discount = breadAndButterDiscount.CalculateDiscount(fourBreadTwoButter); decimal expectedDiscount = bread.Cost; Assert.AreEqual(expectedDiscount, discount); }
public void DiscountIsHalfBreadWhenTwoButterAndFourBread() { LinkedDiscountCalculator breadAndButterDiscount = new LinkedDiscountCalculator(butter, bread, 2, 1, 0.5f); Dictionary <Product, int> fourBreadTwoButter = new Dictionary <Product, int> { { bread, 4 }, { butter, 2 } }; decimal discount = breadAndButterDiscount.CalculateDiscount(fourBreadTwoButter); decimal expectedDiscount = bread.Cost * 0.5m; Assert.AreEqual(expectedDiscount, discount); }
public void CanNotCreateLinkedCalculatorWithNoDiscountProducts() { LinkedDiscountCalculator breadAndButterDiscount = new LinkedDiscountCalculator(butter, bread, 2, 0, 0.5f); }