Example #1
0
        public void EmprestimoAprovado()
        {
            var solicitacaoCredito = new SolicitacaoCreditoView()
            {
                TipoCredito         = "Pessoa Física",
                ValorCredito        = 14000.00M,
                QtdParcelas         = 12,
                DataPrimeiraParcela = DateTime.Now.AddDays(16)
            };

            decimal valorFinal = 19960.65M;
            decimal valorJuros = 5960.65M;

            var target = new credito.Servico.Credito();
            var result = target.ValidarCredito(solicitacaoCredito);

            var mensagemAprovado = $"Aprovado. Crédito liberado no valor de R$ {solicitacaoCredito.ValorCredito}";

            Console.WriteLine(result.ValorTotalComJuros);
            Console.WriteLine(result.ValorDosJuros);

            Assert.AreEqual(mensagemAprovado, result.StatusCrediro);
            Assert.AreEqual(valorFinal, result.ValorTotalComJuros);
            Assert.AreEqual(valorJuros, result.ValorDosJuros);
        }
Example #2
0
        [TestMethod] //Para o crédito de pessoa jurídica, o valor mínimo a ser liberado é de R$ 15.000,00
        public void EmprestimoPessoaJurica()
        {
            var solicitacaoCredito = new SolicitacaoCreditoView()
            {
                TipoCredito         = "Pessoa Jurídica",
                ValorCredito        = 15001M,
                QtdParcelas         = 12,
                DataPrimeiraParcela = DateTime.Now.AddDays(16)
            };

            var target = new credito.Servico.Credito();
            var result = target.ValidarCredito(solicitacaoCredito);

            var mensagemAprovado = $"Aprovado. Crédito liberado no valor de R$ {solicitacaoCredito.ValorCredito}";

            Assert.AreEqual(mensagemAprovado, result.StatusCrediro);
        }
Example #3
0
        public void EmprestimoReprovadoPrimeiraParcelaDataMaxima()
        {
            var solicitacaoCredito = new SolicitacaoCreditoView()
            {
                TipoCredito         = "Pessoa Física",
                ValorCredito        = 14000.00M,
                QtdParcelas         = 12,
                DataPrimeiraParcela = DateTime.Now.AddDays(45)
            };

            var target = new credito.Servico.Credito();
            var result = target.ValidarCredito(solicitacaoCredito);

            var mensagemReprovada = "A Data da primeira parcela não pode ser superior a";

            Assert.IsTrue(result.StatusCrediro.Contains(mensagemReprovada));
        }
Example #4
0
        [TestMethod] //Para o crédito de pessoa jurídica, o valor mínimo a ser liberado é de R$ 15.000,00
        public void EmprestimoPessoaJuricaReprovadoValorMaximo()
        {
            var solicitacaoCredito = new SolicitacaoCreditoView()
            {
                TipoCredito         = "Pessoa Jurídica",
                ValorCredito        = 1000001M,
                QtdParcelas         = 12,
                DataPrimeiraParcela = DateTime.Now.AddDays(16)
            };

            var target = new credito.Servico.Credito();
            var result = target.ValidarCredito(solicitacaoCredito);

            var mensagemAprovado = $"Reprovado. Valor superior a R$ 1.000.000,00. Valor solicitado R$ {solicitacaoCredito.ValorCredito}";

            Assert.AreEqual(mensagemAprovado, result.StatusCrediro);
        }
Example #5
0
        [TestMethod] //Para o crédito de pessoa jurídica, o valor mínimo a ser liberado é de R$ 15.000,00
        public void EmprestimoPessoaJuricaReprovadoValorMinimo()
        {
            var solicitacaoCredito = new SolicitacaoCreditoView()
            {
                TipoCredito         = "Pessoa Jurídica",
                ValorCredito        = 14000M,
                QtdParcelas         = 12,
                DataPrimeiraParcela = DateTime.Now.AddDays(16)
            };

            var target = new credito.Servico.Credito();
            var result = target.ValidarCredito(solicitacaoCredito);

            var mensagemAprovado = $"Recusado. Para o crédito de pessoa jurídica, o valor mínimo a ser liberado é de R$ 15.000,00";

            Assert.AreEqual(mensagemAprovado, result.StatusCrediro);
        }
Example #6
0
        public CreditoView ValidarCredito(SolicitacaoCreditoView solicitacaoCredito)
        {
            var           creditoView                  = new CreditoView();
            ICreditoValor verificarValorMaximo         = new VerificarValorMaximo();
            ICreditoValor verificarValorTipoCredito    = new VerificarValorTipoCredito();
            ICreditoValor verificarQuantidadeParcelas  = new VerificarQuantidadeParcealas();
            ICreditoValor verificarDataPrimeiraParcela = new VerificarDataPrimeiraParcela();

            verificarValorMaximo.Proximo        = verificarValorTipoCredito;
            verificarValorTipoCredito.Proximo   = verificarQuantidadeParcelas;
            verificarQuantidadeParcelas.Proximo = verificarDataPrimeiraParcela;

            var validacoes = verificarValorMaximo.Valor(solicitacaoCredito.ValorCredito,
                                                        solicitacaoCredito.TipoCredito,
                                                        solicitacaoCredito.QtdParcelas,
                                                        solicitacaoCredito.DataPrimeiraParcela);

            if (!validacoes.Item3)
            {
                creditoView.Aprovado           = validacoes.Item3;
                creditoView.StatusCrediro      = validacoes.Item1;
                creditoView.ValorTotalComJuros = validacoes.Item2;
                creditoView.ValorDosJuros      = 0;
                return(creditoView);
            }

            IJuros verificarJurosTipoCredito = new JurosTipoCredito();
            IJuros calcularValores           = new CalcularValorFinal();

            verificarJurosTipoCredito.Proximo = calcularValores;

            var credito = verificarJurosTipoCredito.Valor(solicitacaoCredito.ValorCredito,
                                                          solicitacaoCredito.TipoCredito,
                                                          solicitacaoCredito.QtdParcelas,
                                                          0);

            creditoView.Aprovado           = credito.Aprovado;
            creditoView.StatusCrediro      = credito.StatusCrediro;
            creditoView.ValorTotalComJuros = credito.ValorTotalComJuros;
            creditoView.ValorDosJuros      = credito.ValorDosJuros;

            return(creditoView);
        }
Example #7
0
        private static CreditoView CriarCredito(SolicitacaoCreditoView solicitacaoCredito)
        {
            var servico = new Servico.Credito();

            return(servico.ValidarCredito(solicitacaoCredito));
        }
Example #8
0
        public CreditoView Post([FromBody] SolicitacaoCreditoView solicitacaoCredito)
        {
            var _repository = new Servico.Credito();

            return(_repository.ValidarCredito(solicitacaoCredito));
        }