public void NaoAprovarCreditoJuridicoValorMinimo() { var handler = new LiberacaoCreditoHandler(); var command = new LiberacaoCreditoJuridicaCommand(); command.ValorCredito = "14.999,00"; command.Parcelas = "5"; command.PrimeiroVencimento = DateTime.Now.AddDays(30).ToString(); var result = (CommandResult)handler.Handle(command); Assert.AreEqual(true, ((Juridica)result.Data).Status.Equals(EStatusLiberacaoCredito.Recusado)); }
public ICommandResult Handle(LiberacaoCreditoJuridicaCommand command) { command.Validate(); if (command.Invalid) { AddNotifications(command); return(new CommandResult(false, "Não foi possível a Liberação de Crédito de Pessoa Jurídica", null)); } //Validacoes if (!decimal.TryParse(command.ValorCredito, out decimal valorCredito)) { AddNotification("LiberacaoCreditoFisicaCommand.ValorCredito", "O valor de crédito é inválido"); } if (!int.TryParse(command.Parcelas, out int parcelas)) { AddNotification("LiberacaoCreditoFisicaCommand.Parcelas", "O número de parcelas é inválido"); } if (!DateTime.TryParse(command.PrimeiroVencimento, out DateTime primeiroVencimento)) { AddNotification("LiberacaoCreditoFisicaCommand.PrimeiroVencimento", "A data do primeiro vencimento é inválida"); } if (Invalid) { return(new CommandResult(false, "Não foi possível a Liberação de Crédito de Pessoa Jurídica", null)); } //Gerar a Entidade de Liberacao de Credito var juridica = new Juridica(valorCredito, parcelas, primeiroVencimento); //Aprovar ou Reprovar juridica.Aprovar(); //Calcular Juros juridica.CalcularJuros(); if (juridica.Invalid) { return(new CommandResult(false, "Não foi possível calcular o Juros de Crédito de Pessoa Jurídica", null)); } return(new CommandResult(true, $"Status do crédito: {juridica.StatusString} | Valor total com juros: {juridica.ValorTotalComJurosString} | Valor do juros: {juridica.ValorJurosString} ", juridica)); }
static void Main(string[] args) { System.Console.Write("Digite o valor do crédito:"); string valorCredito = System.Console.ReadLine(); System.Console.Write("Digite o tipo de crédito (1 - Direto | 2 - Consignado | 3 - Pessoa Jurídica | 4 - Pessoa Física | 5 - Imobiliário):"); string tipoCredito = System.Console.ReadLine(); System.Console.Write("Digite a quantidade de parcelas:"); string parcelas = System.Console.ReadLine(); System.Console.Write("Digite a data do primeiro vencimento:"); string primeiroVencimento = System.Console.ReadLine(); var handler = new LiberacaoCreditoHandler(); if (tipoCredito.Contains("1")) { var command = new LiberacaoCreditoDiretoCommand(); command.ValorCredito = valorCredito; command.Parcelas = parcelas; command.PrimeiroVencimento = primeiroVencimento; var result = (CommandResult)handler.Handle(command); System.Console.Write(result.Message); } else if (tipoCredito.Contains("2")) { var command = new LiberacaoCreditoConsignadoCommand(); command.ValorCredito = valorCredito; command.Parcelas = parcelas; command.PrimeiroVencimento = primeiroVencimento; var result = (CommandResult)handler.Handle(command); System.Console.Write(result.Message); } else if (tipoCredito.Contains("3")) { var command = new LiberacaoCreditoJuridicaCommand(); command.ValorCredito = valorCredito; command.Parcelas = parcelas; command.PrimeiroVencimento = primeiroVencimento; var result = (CommandResult)handler.Handle(command); System.Console.Write(result.Message); } else if (tipoCredito.Contains("4")) { var command = new LiberacaoCreditoFisicaCommand(); command.ValorCredito = valorCredito; command.Parcelas = parcelas; command.PrimeiroVencimento = primeiroVencimento; var result = (CommandResult)handler.Handle(command); System.Console.Write(result.Message); } else if (tipoCredito.Contains("5")) { var command = new LiberacaoCreditoImobiliarioCommand(); command.ValorCredito = valorCredito; command.Parcelas = parcelas; command.PrimeiroVencimento = primeiroVencimento; var result = (CommandResult)handler.Handle(command); System.Console.Write(result.Message); } }