private ResultadoDto SimularContribuicao(InformacoesDto informacoesDto, int idadeMinimaParaAposentar, int tempoMinimoContribuicao, double percentualAplicadoParaCalculo) { int quantidadeMesesAno = 12; int idadeAtual = GetIdade(informacoesDto.Nascimento); int tempoFaltaParaAposentar = idadeMinimaParaAposentar - idadeAtual; int tempoJaRealizado = idadeAtual - informacoesDto.IdadeComQueComecouContribuicao; int tempoTotalRealizado = tempoJaRealizado + tempoFaltaParaAposentar; if (tempoTotalRealizado < tempoMinimoContribuicao) { tempoFaltaParaAposentar += (tempoMinimoContribuicao - tempoTotalRealizado); } int quantidadeContribuicoesParaPagarIniciandoMesAtual = (tempoFaltaParaAposentar * quantidadeMesesAno); DateTime dataUltimaContribuicao = DateTime.Now.AddMonths(quantidadeContribuicoesParaPagarIniciandoMesAtual); double valorPagoMes = GetValorContribuicao(informacoesDto, percentualAplicadoParaCalculo); SimulacaoDto simulacaoDto = _mapper.Map <SimulacaoDto>(informacoesDto); simulacaoDto.IdUsuario = _usuarioService.FindByNome(informacoesDto.Usuario).Id; Create(simulacaoDto); Resultado resultado = new Resultado(quantidadeContribuicoesParaPagarIniciandoMesAtual, dataUltimaContribuicao, valorPagoMes, percentualAplicadoParaCalculo, simulacaoDto.Id); _resultadoService.Create(resultado); return(_mapper.Map <ResultadoDto>(resultado)); }
public void CreateTest() => Assert.DoesNotThrow(() => _resultadoService.Create(new Resultado(504, DateTime.Parse("2062-07-13"), 3.75, 7.50, _simulacao.Id)));