public void ShouldThrowInvalidEnumArgumentExceptionWhenTaxableUndefined()
        {
            FakeShoppingItem fakeItem = CreateFakeItem();

            fakeItem.Taxable = Taxable.Undefined;
            Assert.Catch(() => _taxCalculator.CalculatePriceWithTax(fakeItem));
        }
        public void ZeroPrecentTaxShouldReturnPriceWithoutTax()
        {
            const decimal zero = 0m;

            FakeShoppingItem fakeItem = CreateFakeItem();

            fakeItem.TaxAmountAsPercent = zero;
            decimal result = _taxCalculator.CalculatePriceWithTax(fakeItem);

            Assert.AreEqual(result, fakeItem.PriceWithoutTax);
        }
        public void NoPriceAndATaxAmountShouldReturnZero()
        {
            const decimal zero = 0m;

            FakeShoppingItem fakeItem = CreateFakeItem();

            fakeItem.PriceWithoutTax = zero;
            decimal result = _taxCalculator.CalculatePriceWithTax(fakeItem);

            Assert.AreEqual(result, zero);
        }
        public void TaxExemptShouldReturnPriceWithoutTax()
        {
            const decimal ten = 10m;

            FakeShoppingItem fakeItem = CreateFakeItem();

            fakeItem.Taxable         = Taxable.TaxExempt;
            fakeItem.PriceWithoutTax = ten;
            decimal result = _taxCalculator.CalculatePriceWithTax(fakeItem);

            Assert.AreEqual(result, ten);
        }