public void TwoItemsDiscountTypeAllFourItemsTest() { var productCodes = new List <string> { "code1", "code2" }; var discountType = new TwoItemsDiscountType(GetDiscount(productCodes)); var originalLineItems = new List <ILineItem> { new StandardLineItem { Price = 1, ProductCode = "code1", SubTotal = 1, Total = 1 }, new StandardLineItem { Price = 1, ProductCode = "code1", SubTotal = 1, Total = 1 }, new StandardLineItem { Price = 1, ProductCode = "code2", SubTotal = 1, Total = 1 }, new StandardLineItem { Price = 1, ProductCode = "code2", SubTotal = 1, Total = 1 }, }; var lineItems = new List <ILineItem>(); originalLineItems.ForEach(lineItems.Add); discountType.Calculate(lineItems); Assert.Equal(0.5, lineItems[0].Total); Assert.Equal(0.5, lineItems[1].Total); Assert.Equal(0.5, lineItems[2].Total); Assert.Equal(0.5, lineItems[3].Total); }
public void TwoBaseItemsDiscountTypeNegativeTest() { var discountType = new TwoItemsDiscountType(GetDiscount()); discountType.Calculate(null); discountType.Calculate(new List <ILineItem>()); }
public void TwoBaseItemsDiscountTypeAlreadyDiscountedTest() { var productCodes = new List <string> { "code1", "code2" }; var discountType = new TwoItemsDiscountType(GetDiscount(productCodes)); var originalLineItems = new List <ILineItem> { new StandardLineItem { Price = 1, ProductCode = "code1", SubTotal = 1, Total = 0.5 }, new StandardLineItem { Price = 1, ProductCode = "code2", SubTotal = 1, Total = 0.5 }, }; var lineItems = new List <ILineItem>(); originalLineItems.ForEach(lineItems.Add); discountType.Calculate(lineItems); Assert.Equal(originalLineItems, lineItems); }