public void BonusProductConstructorTest() { var productName = "Cheese"; var numberNeeded = 1; var discountProduct = "Bread"; var productDiscount = 1.5m; var offer = new BonusProductOffer(productName, numberNeeded, discountProduct, productDiscount); Assert.AreEqual(productName, offer.ProductName); Assert.AreEqual(numberNeeded, offer.NumRequired); Assert.AreEqual(discountProduct, offer.DiscountProductName); Assert.AreEqual(productDiscount, offer.DiscountAmount); }
public void BonusProductNoOfferTest(int cheeseCount, int breadCount) { var productName = "Cheese"; var numberNeeded = 3; var bonusProduct = "Bread"; var bonusDiscount = 0.5m; var offer = new BonusProductOffer(productName, numberNeeded, bonusProduct, bonusDiscount); var products = new Dictionary <Product, int>(); products.Add(new Product("Cheese", 0.5m), cheeseCount); products.Add(new Product("Bread", 0.5m), breadCount); var discountedProduct = offer.DetermineSpecialOffer(products); Assert.IsNull(discountedProduct); }
public void BonusProductDetermineOfferTest(int cheeseCount, int breadCount, decimal expectedDiscountValue) { var productName = "Cheese"; var numberNeeded = 3; var bonusProduct = "Bread"; var bonusDiscount = 0.5m; var offer = new BonusProductOffer(productName, numberNeeded, bonusProduct, bonusDiscount); var products = new Dictionary <Product, int>(); products.Add(new Product("Cheese", 0.5m), cheeseCount); products.Add(new Product("Bread", 0.5m), breadCount); var expectedDiscountProduct = new Product("Discount on Bread", expectedDiscountValue); var discountedProduct = offer.DetermineSpecialOffer(products); Assert.AreEqual(expectedDiscountProduct, discountedProduct); }