public async Task TestaATransferenciaEmUmaConta() { //Arrange var documentoRt = "12345678914563"; var clienteRtMock = new Cliente() { Nome = "Antonio Almeida", Documento = documentoRt, Conta = new Conta() { Saldo = 2500 } }; var documentoDt = "1234567891789"; var clienteDtMock = new Cliente() { Nome = "Antonio L Almeida", Documento = documentoDt, Conta = new Conta() { Saldo = 1500 } }; var transferencia = 1500; await _context.Clientes.AddAsync(clienteRtMock); await _context.Clientes.AddAsync(clienteDtMock); await _context.SaveChangesAsync(); //Act var clienteRt = await _repositorioCliente.GetClienteByDocumentoAsync(documentoRt); var clienteDt = await _repositorioCliente.GetClienteByDocumentoAsync(documentoDt); var operacao = await _repository.TransferirAsync(clienteRt.Id, clienteDt.Id, transferencia); //Assert Assert.NotNull(clienteRt); Assert.NotNull(clienteDt); Assert.True(operacao); }
public async Task <IActionResult> TransferenciaContaAsync([FromBody] TransactionRequest transacao) { var clienteRt = await GetClienteDbAsync(transacao.Remetente); var clienteDt = await GetClienteDbAsync(transacao.Destinatario); if (clienteRt != null && clienteDt != null) { var operacao = _contaRepositorio.TransferirAsync(clienteRt.Id, clienteDt.Id, transacao.Valor); return(Ok(new { Operacao = "Transferencia", Result = operacao })); } return(BadRequest(new { result = "Não foi Possível realizar a operação." })); }