public void CorrecaoFinanceira(ContasCorrentes contaCorrente) { if (contaCorrente.UltimaMovimentacao.Date == DateTime.Now.Date || contaCorrente.Saldo == 0) { return; } var diasUteisPeriodo = GetDiferencaDias(contaCorrente.UltimaMovimentacao.Date, DateTime.Now.Date); if (diasUteisPeriodo == 0) { return; } var taxaJrs = Math.Round(taxaJurosCDIDia, 4); var baseDeCalculo = Math.Pow(1 + taxaJrs, diasUteisPeriodo) - 1; var saldoAtualizado = contaCorrente.Saldo * Convert.ToDecimal(baseDeCalculo); contaCorrente.Saldo = contaCorrente.Saldo + saldoAtualizado; contaCorrente.UltimaMovimentacao = DateTime.Now; _contaCorrenteRepositorio.Atualizar(contaCorrente); _operacoesServico.Rentabilizar(contaCorrente.Id, saldoAtualizado); return; }
public void TestarAdicionarContaSucesso() { var PessoaIdAux = Guid.NewGuid(); var ContaIdAux = Guid.NewGuid(); ContasCorrentes ContaCorrente_Valida = new ContasCorrentes() { Id = ContaIdAux, Agencia = 123, Conta = 123, UltimaMovimentacao = DateTime.Now, PessoaId = PessoaIdAux, Pessoa = new Pessoas { Id = PessoaIdAux, Nome = "Vainer", CPF = "1234" } }; mock.Setup(cc => cc.Adicionar(ContaCorrente_Valida)) .Returns(() => new ContasCorrentes()); List <ItemValidacao>?validacoes = ValidacoesAdicionarFake(ContaCorrente_Valida); validacoes.Should().BeNullOrEmpty("As regras de validações não foram atendidas"); }
private List <ItemValidacao>?ValidacoesAdicionarFake(ContasCorrentes contasCorrentes) { ContasCorrentesServico contasCorrentesServico = new ContasCorrentesServico(mock.Object); var retorno = contasCorrentesServico.Adicionar(contasCorrentes); return(retorno.Validacoes); }
public virtual ContasCorrentes ContaValidada(ref ContasCorrentes contaCorrente) { NenhumaContaAberta(ref contaCorrente); ObrigatorioPessoaVinculada(ref contaCorrente); AgenciaNaoPodeSerZero(ref contaCorrente); ContaNaoPodeSerZero(ref contaCorrente); return(contaCorrente); }
public ContasCorrentes Atualizar(ContasCorrentes contaCorrente) { var validacao = new ContasCorrentesValidadas(_contaCorrenteRepositorio); contaCorrente = validacao.ContaValidada(ref contaCorrente); if (!contaCorrente.Validacoes.Any()) { contaCorrente.UltimaMovimentacao = DateTime.Now; contaCorrente = _contaCorrenteRepositorio.Atualizar(contaCorrente); } return(contaCorrente); }
private ContasCorrentes ContaNaoPodeSerZero(ref ContasCorrentes contaCorrente) { var ContaZero = contaCorrente.Conta == 0; if (ContaZero) { contaCorrente.Validacoes.Add(new ItemValidacao() { NomePropriedade = "Conta", Mensagem = "A Conta precisa conter um registro válido!" }); } return(contaCorrente); }
private ContasCorrentes ObrigatorioPessoaVinculada(ref ContasCorrentes contaCorrente) { var ExistePessoa = contaCorrente.Pessoa != null; if (!ExistePessoa) { contaCorrente.Validacoes.Add(new ItemValidacao() { NomePropriedade = "Pessoa.Nome", Mensagem = "Uma Pessoa não foi vinculada à conta!" }); } return(contaCorrente); }
private ContasCorrentes NenhumaContaAberta(ref ContasCorrentes contaCorrente) { var ExisteRegistro = _contaRepositorio.Listar().Count() > 0; if (ExisteRegistro) { contaCorrente.Validacoes.Add(new ItemValidacao() { NomePropriedade = "Conta", Mensagem = "Já existe Conta aberta!" }); } return(contaCorrente); }
public ValidacoesContasCorrentesTeste() { mock = new Mock <IContasCorrentesRepositorio>(MockBehavior.Default); ContasCorrentes contaCorrenteComErro = new ContasCorrentes() { Agencia = 123, Conta = 123, UltimaMovimentacao = DateTime.Now, PessoaId = Guid.NewGuid() }; contaCorrenteComErro.Validacoes.Add(new ItemValidacao() { NomePropriedade = "Agencia", Mensagem = "A Agência precisa conter um registro válido!" }); contaCorrenteComErro.Validacoes.Add(new ItemValidacao() { NomePropriedade = "Conta", Mensagem = "A Conta precisa conter um registro válido!" }); mock.Setup(cc => cc.Adicionar(ContaCorrente_AgenciaEContaComZero)) .Returns(() => contaCorrenteComErro); ContasCorrentes contaCorrenteSemPessoa = new ContasCorrentes() { Agencia = 123, Conta = 123, UltimaMovimentacao = DateTime.Now, PessoaId = Guid.NewGuid() }; contaCorrenteSemPessoa.Validacoes.Add(new ItemValidacao() { NomePropriedade = "Pessoa.Nome", Mensagem = "Uma Pessoa não foi vinculada à conta!" }); mock.Setup(cc => cc.Adicionar(ContaCorrente_SemPessoaInformado)) .Returns(() => contaCorrenteSemPessoa); }
public DepositoTeste() { mock = new Mock <IOperacoesRepositorio>(MockBehavior.Default); mockContaCorrente = new Mock <IContasCorrentesRepositorio>(MockBehavior.Strict); mockService = new Mock <IOperacoesServico>(MockBehavior.Strict); var PessoaIdAux = Guid.NewGuid(); var ContaIdAux = Guid.NewGuid(); ContaCorrente_Valida = new ContasCorrentes() { Id = ContaIdAux, Agencia = 123, Conta = 123, UltimaMovimentacao = DateTime.Now, PessoaId = PessoaIdAux, Pessoa = new Pessoas { Id = PessoaIdAux, Nome = "Vainer", CPF = "1234" } }; depositoNegativo = new Operacoes() { ContaCorrenteId = ContaIdAux, Data = DateTime.Now, Id = Guid.NewGuid(), TipoOperacao = TipoOperacao.Deposito, Valor = -1000 }; depositoPositivo = new Operacoes() { ContaCorrenteId = ContaIdAux, Data = DateTime.Now, Id = Guid.NewGuid(), TipoOperacao = TipoOperacao.Deposito, Valor = 1000 }; }
public ResgateValidoTeste() { mock = new Mock <IOperacoesRepositorio>(MockBehavior.Default); mockContaCorrente = new Mock <IContasCorrentesRepositorio>(MockBehavior.Default); mockService = new Mock <IOperacoesServico>(MockBehavior.Strict); var ContaIdAux = Guid.NewGuid(); var PessoaIdAux = Guid.NewGuid(); ContaCorrente_Valida = new ContasCorrentes() { Id = ContaIdAux, Agencia = 123, Conta = 123, UltimaMovimentacao = DateTime.Now, Saldo = 5000, PessoaId = PessoaIdAux, Pessoa = new Pessoas { Id = PessoaIdAux, Nome = "Vainer", CPF = "1234" } }; mockContaCorrente.Setup(cc => cc.ObterPorId(ContaIdAux)) .Returns(() => ContaCorrente_Valida); resgateValorZerado = new Operacoes() { ContaCorrenteId = ContaIdAux, Data = DateTime.Now, Id = Guid.NewGuid(), TipoOperacao = TipoOperacao.Resgate, Valor = 0 }; resgateValorNaoZerado = new Operacoes() { ContaCorrenteId = ContaIdAux, Data = DateTime.Now, Id = Guid.NewGuid(), TipoOperacao = TipoOperacao.Resgate, Valor = 1000 }; resgateValorNegativo = new Operacoes() { ContaCorrenteId = ContaIdAux, Data = DateTime.Now, Id = Guid.NewGuid(), TipoOperacao = TipoOperacao.Resgate, Valor = -1000 }; resgateValorPositivo = new Operacoes() { ContaCorrenteId = ContaIdAux, Data = DateTime.Now, Id = Guid.NewGuid(), TipoOperacao = TipoOperacao.Resgate, Valor = 1000 }; resgateSaldoInvalido = new Operacoes() { ContaCorrenteId = ContaIdAux, Data = DateTime.Now, Id = Guid.NewGuid(), TipoOperacao = TipoOperacao.Resgate, Valor = 10000 }; resgateSaldoValido = new Operacoes() { ContaCorrenteId = ContaIdAux, Data = DateTime.Now, Id = Guid.NewGuid(), TipoOperacao = TipoOperacao.Resgate, Valor = 1000 }; resgateValorPadraoInvalido = new Operacoes() { ContaCorrenteId = ContaIdAux, Data = DateTime.Now, Id = Guid.NewGuid(), TipoOperacao = TipoOperacao.Resgate, Valor = 50000 }; resgateValorPadraoValido = new Operacoes() { ContaCorrenteId = ContaIdAux, Data = DateTime.Now, Id = Guid.NewGuid(), TipoOperacao = TipoOperacao.Resgate, Valor = 1000 }; }