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());
        }
示例#3
0
        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);
        }