public void GetPrice_Returns_PriceWithTax() { var purchaseItem = new PurchaseItem("withDuty", 11.25m); var withDuty = new ImportDutyPurchaseItem(purchaseItem); Assert.Equal(11.85m, withDuty.GetPrice()); }
public void GetPrice_Returns_PriceWithTax_For_ItemWithPurchaseTax_And_ImportTax() { var purchaseItem = new PurchaseItem("withDuty", 47.50m); var withTax = new BasicTaxPurchaseItem(purchaseItem); var withDutyAndTax = new ImportDutyPurchaseItem(withTax); Assert.Equal(54.65m, withDutyAndTax.GetPrice()); }
public IPurchaseItem AddTax(IPurchaseItem purchaseItem) { // Check whether any word in description is in exempt list var isTaxExempt = _exemptItems.Any(word => purchaseItem.Description.Contains(word)); var isImported = purchaseItem.Description.Contains("imported"); IPurchaseItem returnItem = purchaseItem; if (!isTaxExempt) { returnItem = new BasicTaxPurchaseItem(returnItem); } if (isImported) { returnItem = new ImportDutyPurchaseItem(returnItem); } return(returnItem); }