Пример #1
0
        public ActionResult CriarLancamento([FromBody] CalculoSeguroVeiculoInput inputs)
        {
            try
            {
                double valorSeguro = _serv.CalcularSeguro(inputs);

                return(Ok(valorSeguro));
            }
            catch (Exception ex)
            {
                return(BadRequest($"Ocorreu um erro ao calcular o valor do seguro: {ex.Message}"));
            }
        }
Пример #2
0
        public void TaxaDeveSer3eLucro5()
        {
            CalculoSeguroVeiculoInput input = new CalculoSeguroVeiculoInput();

            input.ValorVeiculo = 10000;
            double expect = 270.375;

            var mockRepo = new Mock <ICalculoSeguroVeiculoRepository>();

            mockRepo.Setup(x => x.CriarCalculoSeguro(new CalculoSeguroVeiculo())).Returns(true);
            SeguroVeiculoService service = new SeguroVeiculoService(mockRepo.Object);

            double v_seguro = service.CalcularSeguro(input);

            Assert.AreEqual(expect, v_seguro, "taxa deve ser 3 e lucro 5");
        }
Пример #3
0
        public void ValorNaoPodeSerNegativo()
        {
            CalculoSeguroVeiculoInput input = new CalculoSeguroVeiculoInput();

            input.ValorVeiculo = -10000;
            double expect = 0;

            var mockRepo = new Mock <ICalculoSeguroVeiculoRepository>();

            mockRepo.Setup(x => x.CriarCalculoSeguro(new CalculoSeguroVeiculo())).Returns(true);
            SeguroVeiculoService service = new SeguroVeiculoService(mockRepo.Object);

            double v_seguro = service.CalcularSeguro(input);

            Assert.AreEqual(expect, v_seguro, "Valor não pode ser negativo");
        }
Пример #4
0
        public double CalcularSeguro(CalculoSeguroVeiculoInput input)
        {
            double taxaRisco       = ((input.ValorVeiculo * 5) / (input.ValorVeiculo * 2) / 100);
            double premioRisco     = taxaRisco * input.ValorVeiculo;
            double premioPuro      = premioRisco * (1 + MARGEM_SEGURA);
            double premioComercial = (LUCRO * premioPuro) + premioPuro;

            if (premioComercial < 0)
            {
                premioComercial = 0;
            }

            CalculoSeguroVeiculo model = new CalculoSeguroVeiculo {
                CPF = input.CPF, Idade = input.Idade, Marca = input.Marca, Modelo = input.Modelo, Veiculo = input.Veiculo, Nome = input.Nome, ValorVeiculo = input.ValorVeiculo, DataCalculo = DateTime.Now, IdCalculo = Guid.NewGuid(), Lucro = LUCRO, Margem = MARGEM_SEGURA, PremioComercial = premioComercial, PremioPuro = premioPuro, TaxaRisco = taxaRisco
            };

            _repo.CriarCalculoSeguro(model);

            return(premioComercial);
        }