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