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); }