public static Transferencia ExecutarTransferencia(ContaCorrente contaOrigem, ContaCorrente contaDestino, decimal valor) { Transferencia transacao; if (contaOrigem.Ativa && contaDestino.Ativa) { transacao = new Transferencia(contaOrigem, contaDestino, valor); transacao.Executa(); RepositorioTransacaoBancaria.Adicionar(transacao); } else { throw new InvalidOperationException("Conta bloqueada ou saldo insuficiente!"); } return transacao; }
public static Transferencia ExecutarTransferencia(ContaCorrente contaOrigem, ContaCorrente contaDestino, decimal valor) { Transferencia transacao; if (contaOrigem.Ativa && contaDestino.Ativa) { transacao = new Transferencia(contaOrigem, contaDestino, valor); transacao.Executa(); RepositorioTransacaoBancaria.Adicionar(transacao); } else { throw new InvalidOperationException("Conta bloqueada ou saldo insuficiente!"); } return(transacao); }
public void Transferencia(ContaCorrente contaOrigem, ContaCorrente contaDestino, decimal valor) { if (contaOrigem.Status.Equals(ContaCorrente.StatusConta.Ativa.ToString()) && contaDestino.Status.Equals(ContaCorrente.StatusConta.Ativa.ToString())) { TransacaoBancaria transacao = new Transferencia(contaOrigem, contaDestino, valor); ValidaSaldo(contaOrigem, valor, "Transferencia"); transacao.Executa(); } else { throw new Exception("Conta não está ativa"); } }
public void testar_transferencia() { var contaorigem = new ContaCorrente(); var contadestino = new ContaCorrente(); contaorigem.Agencia = new Agencia(); contaorigem.Agencia.Banco = new Banco(); contaorigem.Credita(1000); contaorigem.Numero = 568465; contaorigem.Status = "Ativa"; contaorigem.DataAbertura = System.DateTime.Now.Date; contaorigem.Agencia.Numero = 1; contaorigem.Agencia.Banco.Numero = 1; contadestino.Agencia = new Agencia(); contadestino.Agencia.Banco = new Banco(); contadestino.Credita(1000); contadestino.Numero = 999546; contadestino.Status = "Ativa"; contadestino.DataAbertura = System.DateTime.Now.Date; contadestino.Agencia.Numero = 1; contadestino.Agencia.Banco.Numero = 1; TransacaoBancaria transferencia = new Transferencia(contaorigem, contadestino, 500); transferencia.Executa(); Comprovante comprovante = transferencia.Comprovante; RepositorioTransacaoBancaria.LimparRepositorio(); RepositorioTransacaoBancaria.Adicionar(transferencia); Assert.Contains(transferencia, RepositorioTransacaoBancaria.Listar()); Transferencia recuperado = RepositorioTransacaoBancaria.Listar().Cast <Transferencia>().FirstOrDefault(); List <Transferencia> transferencias = RepositorioTransacaoBancaria.Listar() .Where(t => t.GetType().Name == typeof(Transferencia).Name) .Cast <Transferencia>() .ToList(); Assert.AreEqual(transferencia, recuperado); }
public void TranferenciaTest() { Agencia ag = Fabrica.CriaAgencia(); Cliente cliente = Fabrica.CriaCliente(false); int numConta1 = ag.CriarConta(new Cliente[] { cliente }); int numConta2 = ag.CriarConta(new Cliente[] { cliente }); IConta conta1 = ag.RetornaConta(numConta1); IConta conta2 = ag.RetornaConta(numConta2); double saldoEsperado1 = conta1.Saldo - 100; Transferencia transferencia = new Transferencia(conta1, conta2, 100); transferencia.Executa(); Assert.AreEqual(saldoEsperado1, conta1.Saldo); }