Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }