public void Executar() { if ((_contaSaque.Saldo >= _valor) && (_contaSaque.Situacao != ContaCorrenteEstado.Bloqueada) && (_contaDeposito.Situacao != ContaCorrenteEstado.Bloqueada)) { var repositorioDeTransacoesBancarias = new TransacoesBancariasRepository(); Saque saque = new Saque(_contaSaque, _valor); _contaSaque.Debitar(_valor); Deposito deposito = new Deposito(_contaDeposito, _valor); repositorioDeTransacoesBancarias.Gravar(saque); repositorioDeTransacoesBancarias.Gravar(deposito); _contaDeposito.Creditar(_valor); } else { if ( _contaSaque.Saldo <= 0 ) throw new Exception("Saldo insuficiente para a transferência"); if ( _contaSaque.Situacao == ContaCorrenteEstado.Bloqueada ) throw new Exception("Conta Corrente bloqueada judicialmente, transferência não será possível"); if ( _contaDeposito.Situacao == ContaCorrenteEstado.Bloqueada ) throw new Exception("Conta do favorecido bloqueada judicialmente, transferência não será possível"); } }
public void Executar() { if ((_contaSaque.Saldo >= _valor) && (_contaSaque.Situacao != ContaCorrenteEstado.Bloqueada) && (_contaDeposito.Situacao != ContaCorrenteEstado.Bloqueada)) { var repositorioDeTransacoesBancarias = new TransacoesBancariasRepository(); Saque saque = new Saque(_contaSaque, _valor); _contaSaque.Debitar(_valor); Deposito deposito = new Deposito(_contaDeposito, _valor); repositorioDeTransacoesBancarias.Gravar(saque); repositorioDeTransacoesBancarias.Gravar(deposito); _contaDeposito.Creditar(_valor); } else { if (_contaSaque.Saldo <= 0) { throw new Exception("Saldo insuficiente para a transferência"); } if (_contaSaque.Situacao == ContaCorrenteEstado.Bloqueada) { throw new Exception("Conta Corrente bloqueada judicialmente, transferência não será possível"); } if (_contaDeposito.Situacao == ContaCorrenteEstado.Bloqueada) { throw new Exception("Conta do favorecido bloqueada judicialmente, transferência não será possível"); } } }
public void Teste_Gravar() { var ccE = new ContaCorrenteEspecial(); var tra1 = new Deposito(ccE, 100); RepositorioOperacoes.Gravar(tra1); var operacoes = RepositorioOperacoes.ObterTodos(); var expected = 5; var actual = operacoes.Count; Assert.AreEqual(expected, actual); }