public void TestFlatValueTaxRetuns10000() { var annualIncome = 210000.0; var result = _taxCalculator.CalcualtionTax(annualIncome); Assert.AreEqual(10000, result); }
public void TestFlatRateTax() { var annualIncome = 100000.0; var result = _taxCalculator.CalcualtionTax(annualIncome); Assert.AreEqual(17500, result); }
public void TestProgressiveTax10PercentageRange() { var annualIncome = 5000.0; var result = _taxCalculator.CalcualtionTax(annualIncome); Assert.AreEqual(500.0, result); }
public CalculationResponse CalculationIncomeTax(TaxViewModel taxViewModel) { var annualIncome = taxViewModel.AnnualIncome; var postalCode = _sqlRepository.GetPostalCode(taxViewModel.PostalCode); var taxType = _sqlRepository .GetCalculationType(postalCode.TaxTypeId) .TaxTypeName; taxType = taxType.Replace(" ", "").ToLower(); switch (taxType) { case _flatValue: { _taxCalculator = new FlatValueTaxCalculator(); var tax = _taxCalculator.CalcualtionTax(annualIncome); return(new CalculationResponse { CalculatedTax = tax, CalculationType = taxType }); } case _flatRate: { _taxCalculator = new FlatRateTaxCalculator(); var tax = _taxCalculator.CalcualtionTax(annualIncome); return(new CalculationResponse { CalculatedTax = tax, CalculationType = taxType }); } case _progressive: { var rates = _sqlRepository.GetRates().ToList(); _taxCalculator = new ProgressiveTaxCalculator(rates); var tax = _taxCalculator.CalcualtionTax(annualIncome); return(new CalculationResponse { CalculatedTax = tax, CalculationType = taxType }); } default: return(null); } }