public void Deve_executar_transferencia() { var contaCorrenteServicoMock = new Mock <IContaCorrenteServico>(); contaCorrenteServicoMock.Setup(s => s.ObterSaldo(It.IsAny <int>())) .Returns(300); var contaCorrenteRepositorioMock = new Mock <IContaCorrenteRepositorio>(); contaCorrenteRepositorioMock.Setup(r => r.Obter(It.Is <int>(c => c == Origem))) .Returns(ContaOrgiem); contaCorrenteRepositorioMock.Setup(r => r.Obter(It.Is <int>(c => c == Destino))) .Returns(ContaDestino); var request = new TransferenciaRequest { ContaOrigem = Origem, ContaDestino = Destino, Valor = 300 }; var transferenciaUseCase = new TransferenciaUseCase(contaCorrenteServicoMock.Object, contaCorrenteRepositorioMock.Object); transferenciaUseCase.Executar(request); contaCorrenteRepositorioMock.Verify(r => r.Salvar(It.IsAny <ContaCorrente>()), Times.Exactly(2)); }
public void Deve_lancar_excessao_quando_saldo_insuficiente() { var contaCorrenteServicoMock = new Mock <IContaCorrenteServico>(); contaCorrenteServicoMock.Setup(s => s.ObterSaldo(It.IsAny <int>())) .Returns(0); var contaCorrenteRepositorioMock = new Mock <IContaCorrenteRepositorio>(); contaCorrenteRepositorioMock.Setup(r => r.Obter(It.Is <int>(c => c == Origem))) .Returns(ContaOrgiem); contaCorrenteRepositorioMock.Setup(r => r.Obter(It.Is <int>(c => c == Destino))) .Returns(ContaDestino); var request = new TransferenciaRequest { ContaOrigem = Origem, ContaDestino = Destino, Valor = 300 }; TransferenciaUseCase transferenciaUseCase = new TransferenciaUseCase(contaCorrenteServicoMock.Object, contaCorrenteRepositorioMock.Object); Action action = () => transferenciaUseCase.Executar(request); action.Should().Throw <SaldoInsuficienteException>(); }
public async Task Transferir() { TransferenciaRequest transferenciaRequest = new TransferenciaRequest(); transferenciaRequest.ContaCorrenteCredito = new ContaCorrente() { Banco = new Banco() { CodigoBanco = 237 }, Agencia = new Agencia() { CodigoAgencia = 1996, DigitoAgencia = 8 }, Conta = 32961, Digito = 4 }; transferenciaRequest.ContaCorrenteDebito = new ContaCorrente() { Banco = new Banco() { CodigoBanco = 341 }, Agencia = new Agencia() { CodigoAgencia = 1234, DigitoAgencia = 5 }, Conta = 32945, Digito = 1 }; transferenciaRequest.Montante = 879.54M; var jsonContent = JsonConvert.SerializeObject(transferenciaRequest); var contentString = new StringContent(jsonContent, Encoding.UTF8, "application/json"); contentString.Headers.ContentType = new MediaTypeHeaderValue("application/json"); string retorno = string.Empty; using (var client = new TesteContext().Client) { var response = await client.PostAsync("/api/solicitacao", contentString); response.EnsureSuccessStatusCode(); response.StatusCode.Should().Be(HttpStatusCode.OK); retorno = response.StatusCode.ToString(); } Assert.Equal("OK", retorno); }
public TransferenciaResponse Transferir(TransferenciaRequest transferenciaRequest) { TransferenciaResponse response = new TransferenciaResponse(); try { _servicoContaCorrente.Transferir(transferenciaRequest.ContaCorrenteCredito, transferenciaRequest.ContaCorrenteDebito, transferenciaRequest.Montante); response.Successo = true; return(response); } catch { throw; } }
public async Task <IEnumerable <Transferencia> > ObtenerTransferencias(int cli_cod_cliente) { TransferenciaRequest request = new TransferenciaRequest() { Cli_cod_cliente = cli_cod_cliente }; HttpClient client = GetClient(); var response = await client.PostAsync(UrlObtener, new StringContent( JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json")); return(JsonConvert.DeserializeObject <IEnumerable <Transferencia> >( await response.Content.ReadAsStringAsync())); }
public IActionResult Transferir([FromBody] TransferenciaRequest transferenciaRequest) { HttpRequestMessage request = new HttpRequestMessage(); try { TransferenciaResponse response = _servicoBank.Transferir(transferenciaRequest); response.Mensagem = "Transferência efetuada com sucesso!"; return(Ok(response)); } catch (SaldoInsuficienteException ex) { return(BadRequest(ex)); } catch (Exception ex) { return(BadRequest(ex)); } }
public void Deve_lancar_excessao_quando_conta_origem_invalida() { var contaCorrenteServicoMock = new Mock <IContaCorrenteServico>(); var contaCorrenteRepositorioMock = new Mock <IContaCorrenteRepositorio>(); contaCorrenteRepositorioMock.Setup(r => r.Obter(It.Is <int>(c => c == Origem))) .Returns <ContaCorrente>(null); var request = new TransferenciaRequest { ContaOrigem = Origem, ContaDestino = Destino, Valor = 300 }; TransferenciaUseCase transferenciaUseCase = new TransferenciaUseCase(contaCorrenteServicoMock.Object, contaCorrenteRepositorioMock.Object); Action action = () => transferenciaUseCase.Executar(request); action.Should().Throw <ContaCorrenteInvalidaException>(); }
public ActionResult PostTransferencia([FromBody] TransferenciaRequest request) { _transferenciaUseCase.Executar(request); return(Ok()); }