public async Task <ContaCorrente> Obter(Guid contaId) { var entity = await context.Contas.FirstOrDefaultAsync(s => s.Id.Equals(contaId)); if (entity == null) { throw new ContaNaoEncontradaException(contaId); } List <ITransacao> transacoes = new List <ITransacao>(); var creditos = await this.ObterCreditos(entity.Id); foreach (var credito in creditos) { transacoes.Add(Credito.Carregar(credito.Id, credito.TransacaoId, credito.ContaId, credito.DataTransacao, credito.Valor)); } var debitos = await this.ObterDebitos(entity.Id); foreach (var debito in debitos) { transacoes.Add(Debito.Carregar(debito.Id, debito.TransacaoId, debito.ContaId, debito.DataTransacao, debito.Valor)); } transacoes.OrderBy(s => s.DataTransacao); LancamentoCollection transacaoCollection = new LancamentoCollection(); transacaoCollection.Adicionar(transacoes); var conta = ContaCorrente.Carregar(entity.Id, entity.ClienteId, entity.NumeroAgencia, entity.NumeroConta, entity.DigitoConta, transacaoCollection); return(conta); }
public void DeveRetornarNullCasoNaoTenhaNenhumTransacao() { LancamentoCollection transacoes = new LancamentoCollection(); ITransacao transacao = transacoes.ObterUltimaTransacao(); Assert.Null(transacao); }
public void DeveConseguirObterTodasAsTransacoes() { LancamentoCollection transacoes = new LancamentoCollection(); transacoes.Adicionar(new Credito(Guid.NewGuid(), 50)); transacoes.Adicionar(new Debito(Guid.NewGuid(), 50)); Assert.Equal(2, transacoes.ObterTransacoes().Count); }
public void DeveConseguirAdicionarUmaTransacao() { LancamentoCollection transacoes = new LancamentoCollection(); Guid contaId = Guid.NewGuid(); Valor valor = 50; transacoes.Adicionar(new Credito(contaId, valor)); ITransacao transacao = transacoes.ObterUltimaTransacao(); Assert.Equal(contaId, transacao.ContaId); Assert.Equal(valor, transacao.Valor); }
public void DeveConseguirObterOSaldo() { LancamentoCollection transacoes = new LancamentoCollection(); Guid contaId = Guid.NewGuid(); transacoes.Adicionar(new Credito(contaId, 50)); transacoes.Adicionar(new Credito(contaId, 50)); transacoes.Adicionar(new Debito(contaId, 9.9)); Valor saldoEsperado = 90.1; Assert.Equal(saldoEsperado, transacoes.ObterSaldo()); }
public void DeveConseguirCarregarUmaConta() { Guid contaId = Guid.NewGuid(); Guid clienteId = Guid.NewGuid(); LancamentoCollection transacoes = new LancamentoCollection(); transacoes.Adicionar(new Credito(contaId, 50)); ContaCorrente conta = ContaCorrente.Carregar(contaId, clienteId, "123", "45678", "9", transacoes); Assert.Equal(contaId, conta.Id); Assert.Equal(clienteId, conta.ClienteId); Assert.Equal("123", conta.NumeroAgencia.ToString()); Assert.Equal("45678", conta.NumeroConta.ToString()); Assert.Equal("9", conta.DigitoConta.ToString()); Assert.Equal(50, conta.ObterSaldo()); }