public void CalcularImpostoDeRendaQuinzePorcentoComSucesso() { Cpf cpf = Cpf.Create("09854146006"); Contribuinte contribuinte = Contribuinte.Novo("Diego Parente", cpf, 4925M, 1); ImpostoDeRenda impostaDeRenda = ImpostoDeRenda.Novo(contribuinte, _salarioMinimo); Assert.AreEqual(impostaDeRenda.Aliquota.Percentual, 0.15M); }
public void CalcularImpostoDeRendaIsentoComSucesso() { Cpf cpf = Cpf.Create("09854146006"); Contribuinte contribuinte = Contribuinte.Novo("Diego Parente", cpf, 1500M, 2); ImpostoDeRenda impostaDeRenda = ImpostoDeRenda.Novo(contribuinte, 985m); Assert.AreEqual(impostaDeRenda.Aliquota.Percentual, 0M); }
public void CalcularImpostoDeRendaVinteESeteEMeioPorcentoValido() { Cpf cpf = Cpf.Create("09854146006"); Contribuinte contribuinte = Contribuinte.Novo("Diego Parente", cpf, 10000M, 1); ImpostoDeRenda impostaDeRenda = ImpostoDeRenda.Novo(contribuinte, _salarioMinimo); Assert.IsTrue(impostaDeRenda.IsValid()); }
public void CalcularImpostoDeRendaIsentoValido() { Cpf cpf = Cpf.Create("09854146006"); Contribuinte contribuinte = Contribuinte.Novo("Diego Parente", cpf, 1500M, 2); ImpostoDeRenda impostaDeRenda = ImpostoDeRenda.Novo(contribuinte, 985m); Assert.IsTrue(impostaDeRenda.IsValid()); }
public void CalcularImpostoDeRendaComContribuinteInvalidoErro() { Cpf cpf = Cpf.Create("09857146006"); Contribuinte contribuinte = Contribuinte.Novo("Diego Parente", cpf, 0M, 2); ImpostoDeRenda impostaDeRenda = ImpostoDeRenda.Novo(contribuinte, 985m); Assert.IsFalse(impostaDeRenda.IsValid()); }
public CalcularIRResult Handle(CalcularIRInput input) { CalcularIRResult result = new CalcularIRResult(); try { // Recupera os contribuintes da base de dados var contribuintes = _contribuinteRepository.ObterTodos(); // Varre todos os contribuintes da base de dados. foreach (var contribuinte in contribuintes) { // Cria um novo imposto var imposto = ImpostoDeRenda.Novo(contribuinte, input.SalarioMinimo); // Verifica se o imposto está válido if (imposto.IsValid()) { result.ContribuintesImpostoDeRenda.Add(imposto); } else { base.AddNotifications(imposto.Notifications); } } // Ordena o resultado. result.ContribuintesImpostoDeRenda = result.ContribuintesImpostoDeRenda.OrderByDescending(x => x.Imposto) .ThenByDescending(x => x.Contribuinte.Nome).ToList(); } catch (Exception ex) { base.AddNotification("Error", $"Houve uma falha inesperada! Mensagem: {ex.Message}"); } return(result); }