Exemple #1
0
        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());
        }
Exemple #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);
        }