public void It_does_not_give_discount_when_deal_does_not_apply() { var items = new Collection <IPurchaseable> { new Bread(), new Butter() }; var unit = new CurrentOffers(); var deal = Substitute.For <IDeal>(); deal.TimesEligible(items).Returns(0); unit.RegisterDeal(deal, 100); Assert.That(unit.GetApplicable(items).NetPence, Is.EqualTo(0)); }
public void It_gives_discount_when_deal_applies_twice() { var items = new Collection <IPurchaseable> { new Bread(), new Butter() }; var unit = new CurrentOffers(); var deal = Substitute.For <IDeal>(); var timesApplicable = 2; deal.TimesEligible(items).Returns(timesApplicable); var discount = 100; unit.RegisterDeal(deal, discount); Assert.That(unit.GetApplicable(items).NetPence, Is.EqualTo(-discount * timesApplicable)); }