public void When_promotion_applies() { var productCatalog = new ProductCatalog(); productCatalog.AddAdditionalItemDiscount("apple", 1, 1, 100); productCatalog.AddProduct("apple", 0.75m); var sut = new AdditionalItemDiscountRule(productCatalog); var promotions = new Promotions(new List <IPromotionalDiscountRule>() { sut }); var lineItem = new LineItem("apple", 7, productCatalog, promotions); var actual = sut.PromotionApplies(lineItem); Assert.That(actual, Is.True); }
public void When_calculating_rule() { var productCatalog = new ProductCatalog(); productCatalog.AddAdditionalItemDiscount("apple", 1, 1, 100); productCatalog.AddProduct("apple", 0.75m); var sut = new AdditionalItemDiscountRule(productCatalog); var promotions = new Promotions(new List <IPromotionalDiscountRule>() { sut }); var lineItem = new LineItem("apple", 7, productCatalog, promotions); var actual = sut.Calculate(lineItem); Assert.That(actual.DiscountedSubTotal, Is.EqualTo(3m)); Assert.That(actual.DiscountNote, Is.EqualTo("***Discount on apple: Buy 1 apple get 1 at $0.00, New Price $3.00, Savings $2.25")); }