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)); }
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"); }
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"); }
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"); }