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