public void Validacao_DeveFalharValidacaoComNumeroDeParcelasMaior()
        {
            //Arrange
            creditoConsignado = new CreditoPessoaJuridica()
            {
                ValorDoCredito         = 50580,
                QuantidadeDeParcelas   = 80,
                DataPrimeiroVencimento = DateTime.Now.AddDays(20)
            };

            //Act
            var statusValidacao = creditoConsignado.Validacao();

            //Assert
            Assert.False(statusValidacao);
        }
        public void Validacao_DeveConfirmarValidacaoCorreta()
        {
            //Arrange
            creditoConsignado = new CreditoPessoaJuridica()
            {
                ValorDoCredito         = 50580,
                QuantidadeDeParcelas   = 24,
                DataPrimeiroVencimento = DateTime.Now.AddDays(20)
            };

            //Act
            var statusValidacao = creditoConsignado.Validacao();

            //Assert
            Assert.True(statusValidacao);
        }
        public void CalcularJuros_DeveCalcularJurosComValorCorreto()
        {
            //Arrange
            creditoConsignado = new CreditoPessoaJuridica()
            {
                ValorDoCredito         = 50000,
                QuantidadeDeParcelas   = 24,
                DataPrimeiroVencimento = DateTime.Now.AddDays(20)
            };

            //Act
            creditoConsignado.CalcularJuros();

            //Assert
            Assert.Equal(2500, creditoConsignado.ValorDoJuros);
            Assert.Equal(52500, creditoConsignado.ValorDoCreditoComJuros);
        }
예제 #4
0
        public void Calcular()
        {
            var valorCredito           = 1000000000.00M;
            var quantidadeParcelas     = 36;
            var dataPrimeiroVencimento = Convert.ToDateTime("23/08/2020", new CultureInfo("pt-BR"));

            CreditoPessoaJuridica creditoPessoaJuridica = new CreditoPessoaJuridica(new Credito <CreditoPessoaJuridica>()
            {
                ValorCredito = valorCredito, QuantidadeParcelas = quantidadeParcelas, DataPrimeiroVencimento = dataPrimeiroVencimento, Taxa = CreditoPessoaJuridica.Taxa
            });

            creditoPessoaJuridica.ValorCredito = valorCredito;

            CreditoVO creditoVOPessoaJuridica = creditoPessoaJuridica.Calcular();

            Console.WriteLine($"Status do Crédito: {creditoVOPessoaJuridica.Status}\nValor Total Com Juros: R$ {creditoVOPessoaJuridica.ValorTotalComJuros.ToString("#.##")}\nValor do Juros: R$ {creditoVOPessoaJuridica.ValorJuros.ToString("#.##")}");
        }
예제 #5
0
        private static void ProcessarCalculoCreditoPessoaJuridica()
        {
            CreditoPessoaJuridica creditoPessoaJuridica = new CreditoPessoaJuridica(new Credito <CreditoPessoaJuridica>()
            {
                ValorCredito = valorCredito, QuantidadeParcelas = quantidadeParcelas, DataPrimeiroVencimento = dataPrimeiroVencimento, Taxa = CreditoPessoaJuridica.Taxa
            });

            creditoPessoaJuridica.ValorCredito = valorCredito;

            CreditoVO creditoVOPessoaJuridica = creditoPessoaJuridica.Calcular();

            Console.Clear();

            Console.WriteLine($"Status do Crédito: {creditoVOPessoaJuridica.Status}\nValor Total Com Juros: R$ {creditoVOPessoaJuridica.ValorTotalComJuros.ToString("#.##")}\nValor do Juros: R$ {creditoVOPessoaJuridica.ValorJuros.ToString("#.##")}");

            Console.ReadKey();
            Console.Clear();
        }
예제 #6
0
        public static void SimulacaoLiberacaoCredito(TiposDeCredito tipoCredito, float valorCredito, int quantidadeParcela, DateTime dataVencimentoParcela)
        {
            Credito credito = null;

            switch (tipoCredito)
            {
            case TiposDeCredito.CreditoDireto:
                credito = new CreditoDireto();
                break;

            case TiposDeCredito.CreditoConsignado:
                credito = new CreditoConsignado();
                break;

            case TiposDeCredito.CreditoPessoaJuridica:
                credito = new CreditoPessoaJuridica();
                break;

            case TiposDeCredito.CreditoPessoaFisica:
                credito = new CreditoPessoaFisica();
                break;

            case TiposDeCredito.CreditoImobiliario:
                credito = new CreditoImobiliario();
                break;
            }

            credito.ValorDoCredito         = valorCredito;
            credito.QuantidadeDeParcelas   = quantidadeParcela;
            credito.DataPrimeiroVencimento = dataVencimentoParcela;

            ExibeEntrada(credito, tipoCredito);

            credito.CalcularJuros();
            var statusAprovacao = credito.Validacao();

            ExibeResultado(credito, statusAprovacao);
        }
예제 #7
0
        static void Main(string[] args)
        {
            Console.WriteLine("Any Bank - Emprestimos");
            Console.WriteLine("Escolha o tipo um tipo de crédito:(digite o número da opção)");

            Console.WriteLine("1 - Credito Direto");
            Console.WriteLine("2 - Credito Consignado");
            Console.WriteLine("3 - Credito Pessoa Jurídica");
            Console.WriteLine("4 - Credito Pessoa Física");
            Console.WriteLine("5 - Credito Imobiliário");

            Emprestimo emprestimo = null;

            var opt = Console.ReadLine();

            if (int.TryParse(opt, out int x))
            {
                switch (x)
                {
                case 1:
                    emprestimo = new CreditoDireto();
                    break;

                case 2:
                    emprestimo = new CreditoConsignado();
                    break;

                case 3:
                    emprestimo = new CreditoPessoaJuridica();
                    break;

                case 4:
                    emprestimo = new CreditoPessoaFisica();
                    break;

                case 5:
                    emprestimo = new CreditoImobiliario();
                    break;

                default:
                    Console.WriteLine("Opção inválida");
                    return;
                }
            }

            Console.WriteLine("Entre com o valor do crédito:");
            var vlr = Console.ReadLine();

            if (!double.TryParse(vlr, out double valor))
            {
                Console.WriteLine("Valor inválido!");
            }

            emprestimo.Valor = valor;

            Console.WriteLine("Entre com o número de parcelas:");
            var p = Console.ReadLine();

            if (!int.TryParse(p, out int totalParcelas))
            {
                Console.WriteLine("Número de parcelas inválido!");
            }

            emprestimo.Parcelas = totalParcelas;

            Console.WriteLine("Entre com a data da primeira parcela:(dd/MM/yyyy)");
            var sdt = Console.ReadLine();

            if (!DateTime.TryParseExact(sdt, "dd/MM/yyyy", null, System.Globalization.DateTimeStyles.None, out DateTime dt))
            {
                Console.WriteLine("Data inválida!");
            }

            Console.WriteLine(dt.ToString());
            emprestimo.VencimentoInicial = dt;

            emprestimo.Simular();

            Console.WriteLine(emprestimo.ToString());
            Console.ReadKey();
        }
예제 #8
0
        static void Main(string[] args)
        {
            Menu();
            ConsoleKeyInfo opcao = Console.ReadKey();

            Console.Clear();
            Credito dados = DadosCredito();
            bool    validacaoValorMaximo, validacaoQtdeParcelas, validacaoVencimento, validacaoPJ;
            string  valorJuros, valorTotalJuros;

            valorTotalJuros = valorJuros = string.Empty;

            switch (opcao.KeyChar)
            {
            case '1':
                dados.PorcentagemJurosCredito = 3;
                validacaoValorMaximo          = new CreditoDireto().ValidarCredito(dados);
                validacaoQtdeParcelas         = new CreditoDireto().ValidarParcelas(dados);
                validacaoVencimento           = new CreditoDireto().ValidarVencimentoParcela(dados);
                if (validacaoValorMaximo && validacaoQtdeParcelas && validacaoVencimento)
                {
                    Console.WriteLine("Recusado");
                }
                else
                {
                    Console.WriteLine("Aprovado");
                }
                valorJuros      = new CreditoDireto().ValorJuros(dados).ToString();
                valorTotalJuros = new CreditoDireto().ValorTotalJuros(dados).ToString();
                Console.WriteLine($"Valor total com juros: R$ {valorTotalJuros}");
                Console.WriteLine($"Valor do juros: R$ {valorJuros}");
                break;

            case '2':
                dados.PorcentagemJurosCredito = 1;
                validacaoValorMaximo          = new CreditoConsignado().ValidarCredito(dados);
                validacaoQtdeParcelas         = new CreditoConsignado().ValidarParcelas(dados);
                validacaoVencimento           = new CreditoConsignado().ValidarVencimentoParcela(dados);
                if (validacaoValorMaximo && validacaoQtdeParcelas && validacaoVencimento)
                {
                    Console.WriteLine("Recusado");
                }
                else
                {
                    Console.WriteLine("Aprovado");
                }
                valorJuros      = new CreditoConsignado().ValorJuros(dados).ToString();
                valorTotalJuros = new CreditoConsignado().ValorTotalJuros(dados).ToString();
                Console.WriteLine($"Valor total com juros: R$ {valorTotalJuros}");
                Console.WriteLine($"Valor do juros: R$ {valorJuros}");
                break;

            case '3':
                dados.PorcentagemJurosCredito = 5;
                validacaoValorMaximo          = new CreditoPessoaJuridica().ValidarCredito(dados);
                validacaoQtdeParcelas         = new CreditoPessoaJuridica().ValidarParcelas(dados);
                validacaoVencimento           = new CreditoPessoaJuridica().ValidarVencimentoParcela(dados);
                validacaoPJ = new CreditoPessoaJuridica().ValidarCreditoMinimoPJ(dados);
                if (validacaoValorMaximo && validacaoQtdeParcelas && validacaoVencimento && validacaoPJ)
                {
                    Console.WriteLine("Recusado");
                }
                else
                {
                    Console.WriteLine("Aprovado");
                }
                valorJuros      = new CreditoPessoaJuridica().ValorJuros(dados).ToString();
                valorTotalJuros = new CreditoPessoaJuridica().ValorTotalJuros(dados).ToString();
                Console.WriteLine($"Valor total com juros: R$ {valorTotalJuros}");
                Console.WriteLine($"Valor do juros: R$ {valorJuros}");
                break;

            case '4':
                dados.PorcentagemJurosCredito = 3;
                validacaoValorMaximo          = new CreditoPessoaFisica().ValidarCredito(dados);
                validacaoQtdeParcelas         = new CreditoPessoaFisica().ValidarParcelas(dados);
                validacaoVencimento           = new CreditoPessoaFisica().ValidarVencimentoParcela(dados);
                if (validacaoValorMaximo && validacaoQtdeParcelas && validacaoVencimento)
                {
                    Console.WriteLine("Recusado");
                }
                else
                {
                    Console.WriteLine("Aprovado");
                }
                valorJuros      = new CreditoPessoaFisica().ValorJuros(dados).ToString();
                valorTotalJuros = new CreditoPessoaFisica().ValorTotalJuros(dados).ToString();
                Console.WriteLine($"Valor total com juros: R$ {valorTotalJuros}");
                Console.WriteLine($"Valor do juros: R$ {valorJuros}");
                break;

            case '5':
                dados.PorcentagemJurosCredito = 9;
                validacaoValorMaximo          = new CreditoImobiliario().ValidarCredito(dados);
                validacaoQtdeParcelas         = new CreditoImobiliario().ValidarParcelas(dados);
                validacaoVencimento           = new CreditoImobiliario().ValidarVencimentoParcela(dados);
                if (validacaoValorMaximo && validacaoQtdeParcelas && validacaoVencimento)
                {
                    Console.WriteLine("Recusado");
                }
                else
                {
                    Console.WriteLine("Aprovado");
                }
                valorJuros      = new CreditoImobiliario().ValorJuros(dados).ToString();
                valorTotalJuros = new CreditoImobiliario().ValorTotalJuros(dados).ToString();
                Console.WriteLine($"Valor total com juros: R$ {valorTotalJuros}");
                Console.WriteLine($"Valor do juros: R$ {valorJuros}");
                break;

            default:
                break;
            }
        }