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;
 }
示例#2
0
        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);
        }
示例#3
0
        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");
            }
        }
示例#4
0
        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);
        }
示例#5
0
        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);
        }
        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);
        }