public bool CalculateIncomeTax(IncomeTaxDto incomeTaxDto) { var isSuccessful = false; try { if (string.IsNullOrEmpty(incomeTaxDto.PostalCode)) { return(isSuccessful); } if (incomeTaxDto.Income <= 0) { return(isSuccessful); } if (incomeTaxDto.PostalCode == "7441" || incomeTaxDto.PostalCode == "1000") { //Calculated Income Tax amount var progressiveTaxLexel = ProgressiveTaxLevel(incomeTaxDto.Income); var incomeTax = new ProgressiveIncomeTax(incomeTaxDto.PostalCode, incomeTaxDto.Income); incomeTax.CalculateProgressiveIncomeTax(progressiveTaxLexel); //Save IncomeTax var result = _incomeTaxRepository.CreateIncomeTax(incomeTax); isSuccessful = result != null; return(isSuccessful); } if (incomeTaxDto.PostalCode == "A100") { var incomeTax = new FlatRateIncomeTax(incomeTaxDto.PostalCode, incomeTaxDto.Income); incomeTax.CalculateFlatRateIncomeTax(); var result = _incomeTaxRepository.CreateIncomeTax(incomeTax); isSuccessful = result != null; } if (incomeTaxDto.PostalCode == "7000") { var incomeTax = new FlatValueIncomeTax(incomeTaxDto.PostalCode, incomeTaxDto.Income); incomeTax.CalculateFlatValueIncomeTax(); var result = _incomeTaxRepository.CreateIncomeTax(incomeTax); isSuccessful = result != null; } return(isSuccessful); } catch (Exception ex) { return(isSuccessful); } }
public void Calculate_FlatRateIncomeTax_Success() { var taxCalculated = new FlatRateIncomeTax(postalCode: "7441", income: 200000); //Act var result = taxCalculated.CalculateFlatRateIncomeTax(); //Assert Assert.IsTrue(result == 35000); }