Ejemplo n.º 1
0
        public void TestΙsEnoughProductsInBasketForOfferToApply()
        {
            OfferRedeemer offerRedeeemer = new OfferRedeemer();
            IBasket       myBasket       = createBasket(4, 2); // 4 milks and 2 lettuces
            IOffer        offer          = buy2MilksGet20percentOffOffer();

            Assert.IsTrue(offerRedeeemer.isEnoughProductsInBasketForOfferToApply(myBasket, offer));
        }
Ejemplo n.º 2
0
        public void TestTimesTheOfferMustApply()
        {
            OfferRedeemer offerRedeeemer = new OfferRedeemer();
            IBasket       myBasket       = createBasket(7, 2); // 7 milks and 2 lettuces
            IOffer        offer          = buy2MilksGet20percentOffOffer();

            Assert.AreEqual(3, offerRedeeemer.timesTheOfferMustApply(myBasket, offer), "The offer in this test should 3 times");
        }
Ejemplo n.º 3
0
        public void TestApplyOfferToBasket()
        {
            OfferRedeemer offerRedeeemer = new OfferRedeemer();
            IBasket       myBasket       = createBasketWithUniqueProducts(); // 5 unique milks and 2 vegetables
            IOffer        offer          = buy2MilksGet20percentOffOffer();
            IBasket       updatedBasket  = offerRedeeemer.applyOfferAndGetBasket(myBasket, offer);

            Assert.AreEqual(new decimal(178), updatedBasket.getGrandTotal(), "The total should be 2*24 + 3*30 + 2*20 = 178");
        }
Ejemplo n.º 4
0
        public void TestApplyOffersAndReturnTotalPrice()
        {
            OfferRedeemer offerRedeeemer     = new OfferRedeemer();
            IBasket       myBasket           = createBasketWithUniqueProducts(); // 5 unique milks and 2 vegetables
            IOffer        offerForDairy      = buy2MilksGet20percentOffOffer();
            IOffer        offerForVegetables = buyOneVegetableGet5Off();
            List <IOffer> offers             = new List <IOffer>()
            {
                offerForDairy, offerForVegetables
            };

            decimal price = offerRedeeemer.applyOffersAndReturnTotalPrice(myBasket, offers);

            Assert.AreEqual(new decimal(168), price, "The total should be 2*24 + 3*30 + 2*15 = 168");
        }