public void testar_saque()
        {
            var conta = new ContaCorrente();

            conta.Credita(1000);
            conta.Numero = 123;

            TransacaoBancaria saque = new Saque(conta, 500);

            saque.Executa();

            Comprovante comprovante = saque.Comprovante;

            RepositorioTransacaoBancaria.LimparRepositorio();

            RepositorioTransacaoBancaria.Adicionar(saque);

            Assert.Contains(saque, RepositorioTransacaoBancaria.Listar());

            Saque recuperado = RepositorioTransacaoBancaria.Listar().Cast <Saque>().FirstOrDefault();

            List <Saque> saques = RepositorioTransacaoBancaria.Listar()
                                  .Where(t => t.GetType().Name == typeof(Saque).Name)
                                  .Cast <Saque>()
                                  .ToList();


            Assert.AreEqual(saque, recuperado);
        }
 public void Executar()
 {
     if (_conta.Status != "Bloqueado" && _conta.Saldo >= _valor)
     {
         TransacaoBancaria saque = new Saque(_conta, _valor);
         saque.Executa();
         RepositorioTransacaoBancaria.Adicionar(saque);
     }
 }
Beispiel #3
0
 public void Executar()
 {
     if (_conta.Status != "Bloqueado" && _conta.Saldo >= _valor)
     {
         TransacaoBancaria saque = new Saque(_conta, _valor);
         saque.Executa();
         RepositorioTransacaoBancaria.Adicionar(saque);
     }
 }
Beispiel #4
0
        public void Saque(ContaCorrente contaOrigem, decimal valor)
        {
            if (contaOrigem.Status.Equals(ContaCorrente.StatusConta.Ativa.ToString()))
            {
                TransacaoBancaria transacao = new Saque(contaOrigem, valor);

                ValidaSaldo(contaOrigem, valor, "Saque");

                transacao.Executa();
            }
            else
            {
                throw new Exception("Conta não está ativa");
            }
        }
 public static Saque ExecutarSaque(ContaCorrente conta, decimal valor)
 {
     Saque saque;
     if (conta.Ativa && conta.Saldo >= valor)
     {
         saque = new Saque(conta, valor);
         saque.Executa();
         RepositorioTransacaoBancaria.Adicionar(saque);
     }
     else
     {
         throw new InvalidOperationException("Conta bloqueada ou saldo insuficiente!");
     }
     return saque;
 }
Beispiel #6
0
        public static Saque ExecutarSaque(ContaCorrente conta, decimal valor)
        {
            Saque saque;

            if (conta.Ativa && conta.Saldo >= valor)
            {
                saque = new Saque(conta, valor);
                saque.Executa();
                RepositorioTransacaoBancaria.Adicionar(saque);
            }
            else
            {
                throw new InvalidOperationException("Conta bloqueada ou saldo insuficiente!");
            }
            return(saque);
        }
Beispiel #7
0
        public void SaqueTest()
        {
            Agencia ag = Fabrica.CriaAgencia();

            Cliente cliente = Fabrica.CriaCliente(false);

            int numConta = ag.CriarConta(new Cliente[] { cliente });

            IConta conta = ag.RetornaConta(numConta);

            double saldoEsperado = conta.Saldo - 100;

            Saque saque = new Saque(conta, 100);

            saque.Executa();

            Assert.AreEqual(saldoEsperado, conta.Saldo);
        }
Beispiel #8
0
        public void ExtratoTest()
        {
            Agencia ag = Fabrica.CriaAgencia();

            Cliente cliente = Fabrica.CriaCliente(false);

            int numConta = ag.CriarConta(new Cliente[] { cliente });

            IConta conta = ag.RetornaConta(numConta);


            Saque saque = new Saque(conta, 100);

            saque.Executa();

            Extrato extrato = new Extrato(conta, DateTime.Now.AddDays(-1), DateTime.Now.AddDays(1));

            extrato.Executa();

            Assert.AreEqual(saque.Data, extrato.Operacoes[0].Data);
        }