public void GetPrice_Returns_PriceWithTax() { var purchaseItem = new PurchaseItem("withTax", 14.99m); var withTax = new BasicTaxPurchaseItem(purchaseItem); Assert.Equal(16.49m, withTax.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); }