public void WhenTaxRateAreNotSorted_CalculatedTaxReturned(double income, double expectedTax) { Assert.Equal(expectedTax, TaxCalc.CalculateTax(income, new TaxRate(new TaxRateItem(null, 30), new TaxRateItem(10000, 0), new TaxRateItem(50000, 10)))); }
public void WhenTaxRateHasThreeThreshold_CalculatedTaxReturned(double income, double expectedTax) { Assert.Equal(expectedTax, TaxCalc.CalculateTax(income, new TaxRate(new TaxRateItem(10000, 0), new TaxRateItem(50000, 10), new TaxRateItem(TaxRateItem.LastThreshold, 30)))); }
public void WhenIncomeIsLessThenZero_ArgumentExceptionExpected() { Assert.Throws <ArgumentException>(() => TaxCalc.CalculateTax(-1, new TaxRate(new TaxRateItem(100, 10)))); }
public void WhenTaxRateIsAlwaysOneHundredPercentage_ReturnsEntireIncome(int income) { Assert.Equal(income, TaxCalc.CalculateTax(income, new TaxRate(new TaxRateItem(TaxRateItem.LastThreshold, 100)))); }
public void WhenTaxRateIsAlwaysZero_ReturnsZero(int income) { Assert.Equal(0, TaxCalc.CalculateTax(income, new TaxRate(new TaxRateItem(TaxRateItem.LastThreshold, 0)))); }