コード例 #1
0
        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));
        }
コード例 #2
0
        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>();
        }
コード例 #3
0
ファイル: Teste.cs プロジェクト: faralves/Teste_Transferencia
        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);
        }
コード例 #4
0
        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;
            }
        }
コード例 #5
0
    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()));
    }
コード例 #6
0
        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));
            }
        }
コード例 #7
0
        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>();
        }
コード例 #8
0
 public ActionResult PostTransferencia([FromBody] TransferenciaRequest request)
 {
     _transferenciaUseCase.Executar(request);
     return(Ok());
 }