public void Transferencia_transacoesBancarias_Conta_Debita_ValorNegativo()
        {
            RepositorioTransacaoBancaria.Limpar();
            var conta = new ContaCorrente();

            Assert.Throws <ArgumentException>(() => conta.Debita(-100));
        }
        public void testar_deposito()
        {
            var conta = new ContaCorrente();

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

            var deposito = new Deposito(conta, 500);

            deposito.Executa();

            var comprovante = deposito.Comprovante;

            RepositorioTransacaoBancaria.Adicionar(deposito);

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

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

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


            Assert.AreEqual(deposito, recuperado);
        }
        public void Transferencia_transacoesBancarias_ContaEspecial_Credita_ValorNegativo()
        {
            RepositorioTransacaoBancaria.Limpar();
            ContaEspecial conta = new ContaEspecial();

            Assert.Throws <ArgumentException>(() => conta.Credita(-100));
        }
示例#4
0
        public void testar_extrato()
        {
            var conta = new ContaCorrente();

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

            var extrato = new Extrato(conta);

            extrato.Executa();

            RepositorioTransacaoBancaria.LimparRepositorio();

            RepositorioTransacaoBancaria.Adicionar(extrato);

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

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

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

            Assert.AreEqual(extrato, recuperado);
        }
示例#5
0
        public void TestarInstanciaUnica()
        {
            RepositorioTransacaoBancaria repositorio1 = RepositorioTransacaoBancaria.Instancia();
            RepositorioTransacaoBancaria repositorio2 = RepositorioTransacaoBancaria.Instancia();

            Assert.AreSame(repositorio1, repositorio2);
        }
        public void Saque_transacoesBancarias_Saldo_Zerado()
        {
            RepositorioTransacaoBancaria.Limpar();
            ContaCorrente conta = new ContaCorrente();

            Assert.Throws <InvalidOperationException>(() => ServicoConta.ExecutarSaque(conta, 500));
        }
示例#7
0
        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);
        }
示例#8
0
 public void Executar()
 {
     if (_conta.Status != "Bloqueado" && _conta.Saldo >= _valor)
     {
         TransacaoBancaria saque = new Saque(_conta, _valor);
         saque.Executa();
         RepositorioTransacaoBancaria.Adicionar(saque);
     }
 }
        public void Transferencia_transacoesBancarias_Conta_Bloqueada()
        {
            RepositorioTransacaoBancaria.Limpar();
            ContaCorrente conta        = new ContaCorrente();
            ContaCorrente contaDestino = new ContaCorrente();

            ServicoConta.Bloquear(conta);
            Assert.Throws <InvalidOperationException>(() => ServicoConta.ExecutarTransferencia(conta, contaDestino, 500));
        }
        public void EmitirExtratos()
        {
            RepositorioTransacaoBancaria.Limpar();
            ContaCorrente conta = new ContaCorrente();

            RepositorioTransacaoBancaria.Adicionar(new Deposito(conta, 10000));
            RepositorioTransacaoBancaria.Adicionar(new Saque(conta, 500));
            RepositorioTransacaoBancaria.Adicionar(new Saque(conta, 500));
            Assert.AreEqual(3, RepositorioTransacaoBancaria.EmiteExtrato(conta, 20).Count());
        }
        public void Deposito_transacoesBancarias()
        {
            RepositorioTransacaoBancaria.Limpar();
            ContaCorrente conta = new ContaCorrente();

            conta.Credita(1000);

            var d = ServicoConta.ExecutarDeposito(conta, 500);

            Assert.IsNotNull(d.Comprovante);
            Assert.AreEqual(1500, conta.Saldo);
        }
        public void Imprimir_Extrato()
        {
            ContaCorrente conta = new ContaCorrente();

            RepositorioTransacaoBancaria.Adicionar(new Deposito(conta, 1000));
            RepositorioTransacaoBancaria.Adicionar(new Saque(conta, 200));

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

            extrato.Executa();

            Assert.AreEqual(2, extrato.TransacoesBancarias.Count());
        }
        public void Transferencia_transacoesBancarias_ContaEspecial_SemLimite()
        {
            RepositorioTransacaoBancaria.Limpar();
            ContaEspecial conta = new ContaEspecial();

            conta.LimiteCredito = 7000;

            conta.Credita(1000);

            ContaCorrente contaDestino = new ContaCorrente();

            Assert.Throws <InvalidOperationException>(() => ServicoConta.ExecutarTransferencia(conta, contaDestino, 90000));
        }
        public void Imprimir_Extrato_Conta_Inativa()
        {
            ContaCorrente conta = new ContaCorrente();

            RepositorioTransacaoBancaria.Adicionar(new Deposito(conta, 1000));
            RepositorioTransacaoBancaria.Adicionar(new Saque(conta, 200));
            ServicoConta.Bloquear(conta);

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

            Assert.Throws <InvalidOperationException>(() => extrato.Executa());

            Assert.IsNotNull(extrato.Comprovante.Descricao);
        }
        public void Transferencia_transacoesBancarias_ContaEspecial()
        {
            RepositorioTransacaoBancaria.Limpar();
            ContaEspecial conta = new ContaEspecial();

            conta.LimiteCredito = 7000;

            ContaCorrente contaDestino = new ContaCorrente();

            ServicoConta.ExecutarTransferencia(conta, contaDestino, 500);

            Assert.AreEqual(-500, conta.Saldo);
            Assert.AreEqual(500, contaDestino.Saldo);
        }
示例#16
0
        public void testar_saque_transacoesBancarias1()
        {
            RepositorioTransacaoBancaria.Limpar();
            ContaCorrente conta = new ContaCorrente();

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

            ServicoSaque servicoSaque = new ServicoSaque(conta, 500);

            Assert.AreEqual(1, RepositorioTransacaoBancaria.Listar().Count);

            Assert.IsNotNull(RepositorioTransacaoBancaria.Listar().Cast <Saque>().FirstOrDefault());
        }
        public void Transferencia_transacoesBancarias()
        {
            RepositorioTransacaoBancaria.Limpar();
            ContaCorrente conta = new ContaCorrente();

            conta.Credita(1000);

            ContaCorrente contaDestino = new ContaCorrente();

            var transf = ServicoConta.ExecutarTransferencia(conta, contaDestino, 500);

            Assert.IsNotNull(transf.Comprovante);
            Assert.AreEqual(500, conta.Saldo);
            Assert.AreEqual(500, contaDestino.Saldo);
        }
示例#18
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);
        }
示例#19
0
        public static Deposito ExecutarDeposito(ContaCorrente conta, decimal valor)
        {
            Deposito deposito = null;

            if (conta.Ativa)
            {
                deposito = new Deposito(conta, valor);
                deposito.Executa();
                RepositorioTransacaoBancaria.Adicionar(deposito);
            }
            else
            {
                throw new InvalidOperationException("Conta bloqueada ou saldo insuficiente!");
            }
            return(deposito);
        }
示例#20
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);
        }
示例#21
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);
        }