public DistribuicaoResponse ObterBonus(DistribuicaoRequest data) { var funcionarios = _funcionarioRepository.ObterFuncionarios().ToList(); var participacoes = new List <ParticipacoesResponse>(); double bonusTotal = 0; foreach (var funcionario in funcionarios) { bonusTotal += CalcularBonusIndividual(funcionario); participacoes.Add(new ParticipacoesResponse { matricula = funcionario.matricula, nome = funcionario.nome, valor_da_participacao = CalcularBonusIndividual(funcionario) }); } double saldo = data.valor_maximo_distribuicao - bonusTotal; return(new DistribuicaoResponse() { Participacoes = participacoes, total_de_funcionarios = funcionarios.Count, total_distribuido = Math.Round(bonusTotal, 2), total_disponibilizado = Math.Round(data.valor_maximo_distribuicao, 2), saldo_total_disponibilizado = Math.Round(saldo, 2) }); }
public void Success() { List <ParticipacoesResponse> participacoesTest = new List <ParticipacoesResponse>(); participacoesTest.Add(new ParticipacoesResponse { matricula = "0009968", nome = "Victor Wilson", valor_da_participacao = valorParticipacaoValid }); DistribuicaoResponse responseTest = new DistribuicaoResponse() { Participacoes = participacoesTest, saldo_total_disponibilizado = saldoTotalValid, total_de_funcionarios = 1, total_disponibilizado = totalDisponibilizadoValid, total_distribuido = totalDistribuidoValid }; var funcionarios = new List <Funcionario>(); funcionarios.Add(funcionario); mockFuncionarioRepository.Setup(m => m.ObterFuncionarios()).Returns(funcionarios); var request = new DistribuicaoRequest() { valor_maximo_distribuicao = 121889.5 }; DistribuicaoResponse distribuicaoLucros = distribuicaoService.ObterBonus(request); distribuicaoLucros.Should().BeEquivalentTo(responseTest); }
public async Task <ActionResult> Post([FromBody] DistribuicaoRequest data) { try { var response = _distribuicaoService.ObterBonus(data); return(Created("", response)); } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, ex)); } }
public void Errors( string testName, double valorParticipacao, double saldoTotal, int qtdFuncionarios, double totalDistribuido, double totalDisponibilizado ) { List <ParticipacoesResponse> participacoesTest = new List <ParticipacoesResponse>(); participacoesTest.Add(new ParticipacoesResponse { matricula = "0009968", nome = "Victor Wilson", valor_da_participacao = valorParticipacao }); DistribuicaoResponse responseTest = new DistribuicaoResponse() { Participacoes = participacoesTest, saldo_total_disponibilizado = saldoTotal, total_de_funcionarios = qtdFuncionarios, total_disponibilizado = totalDisponibilizado, total_distribuido = totalDistribuido }; var funcionarios = new List <Funcionario>(); funcionarios.Add(funcionario); mockFuncionarioRepository.Setup(m => m.ObterFuncionarios()).Returns(funcionarios); var request = new DistribuicaoRequest() { valor_maximo_distribuicao = totalDistribuido }; DistribuicaoResponse distribuicaoLucros = distribuicaoService.ObterBonus(request); distribuicaoLucros.Should().NotBeEquivalentTo(responseTest); }