public async Task DadoQueEuTenhaUmPedidoQueFoiPagoEEstejaAguardandoAprovacao()
        {
            var command = new CriarPedidoCommand(Guid.NewGuid(), 999);

            _context.Add("pedido", command);
            await _testsFixture.Client.PostAsJsonAsync("/api/pedidos", command);

            var commandPagamento = new CriarPagamentoCommand("4242424242424242", DateTime.Now.AddDays(1), 123);
            await _testsFixture.Client.PostAsJsonAsync($"/api/pagamentos/{command.Id}", commandPagamento);
        }
        public async Task Pagamento_AoCriarumPagamentoComComandoInvalido_RetornarNotificacoesComFalha()
        {
            // Arrange
            var command = new CriarPagamentoCommand("", DateTime.Now, 0);

            // Act
            var responseResult = await _handler.Handle(command, CancellationToken.None);

            // Assert
            Assert.True(responseResult.HasFails);
        }
Esempio n. 3
0
        public async Task <ActionResult> RealizarPagamento(Guid pedidoId, CriarPagamentoCommand command)
        {
            command.MarcarPedidoId(pedidoId);
            var response = await EventBus.SendCommand(command);

            if (response.HasFails)
            {
                return(BadRequest(response.Fails));
            }

            return(Ok());
        }
Esempio n. 4
0
        public async Task QuandoEuSolicitarARealizacaoDoPagamento()
        {
            var numeroCartao     = _context.Get <string>("numeroCartao");
            var vencimentoCartao = _context.Get <DateTime>("vencimento");
            var codigoSeguranca  = _context.Get <int>("codigoSeguranca");
            var command          = new CriarPagamentoCommand(numeroCartao, vencimentoCartao, codigoSeguranca);

            var pedido = _context.Get <CriarPedidoCommand>("pedido");

            var postResponse = await _testsFixture.Client.PostAsJsonAsync($"/api/pagamentos/{pedido.Id}", command);

            _context.Set(postResponse);
        }
        public async Task Pagamento_AoCriarumPagamentoComComandoValido_RetornarSucesso()
        {
            // Arrange
            var pedidoId = Guid.NewGuid();
            var command  = new CriarPagamentoCommand("4242424242424242", DateTime.Now.AddDays(1), 123);

            command.MarcarPedidoId(pedidoId);

            var pedido    = Pedido.Criar(pedidoId, 999);
            var pagamento = PedidoPagamento.Criar(pedido, "4242424242424242", DateTime.Now.AddDays(1), 123);

            pedido.AdicionarPagamento(pagamento);
            pedido.AtualizarStatus(PedidoStatus.AguardandoPagamento);

            //Obter pedido
            _mocker.GetMock <IUnitOfWork>()
            .Setup(p => p.Pedidos.ObterPorIdAsync(pedido.Id))
            .Returns(Task.FromResult(pedido));

            //Obter Gateway
            _mocker.GetMock <IGatewayPagamento>()
            .Setup(p => p.EnviarParaPagamento(It.IsAny <Pedido>()))
            .Returns(Task.FromResult("token"));

            //Obter EventBus
            _mocker.GetMock <IEventBus>()
            .Setup(p => p.Publish(It.IsAny <Event>()))
            .Returns(Task.CompletedTask);

            //adicionar pagamento pedido
            _mocker.GetMock <IUnitOfWork>()
            .Setup(p => p.Pedidos.AdicionarPagamentoAsync(pagamento))
            .Returns(Task.CompletedTask);

            //Salvar operação
            _mocker.GetMock <IUnitOfWork>()
            .Setup(p => p.SaveAsync())
            .Returns(Task.CompletedTask);



            // Act
            var responseResult = await _handler.Handle(command, CancellationToken.None);

            // Assert
            Assert.False(responseResult.HasFails);
            _mocker.GetMock <IUnitOfWork>().Verify(o => o.SaveAsync(), Times.Once);
        }
        public async Task Webhook_AoCriarumWEbhookComComandoInvalido_RetornarNotificacoesComFalha()
        {
            // Arrange
            var command = new CriarPagamentoCommand("4242424242424242", DateTime.Now.AddDays(1), 123);

            //Obter EventBus
            _mocker.GetMock <IEventBus>()
            .Setup(p => p.SendCommand(It.IsAny <Command>()))
            .Returns(Task.FromResult(new ResponseResult()));

            // Act
            var responseResult = await _controller.RealizarPagamento(Guid.NewGuid(), command);

            // Assert
            Assert.NotNull(responseResult);
        }
        public void Valido()
        {
            var mockRepositorio = new Mock <ILancamentoRepository>();

            mockRepositorio.Setup(x => x.InserirPagamento(It.IsAny <Pagamento>()));
            var handler = new LancamentoHandler(mockRepositorio.Object);
            var command = new CriarPagamentoCommand()
            {
                Descricao        = "Pagamento",
                Documento        = "343343",
                ValorLancamento  = 100m,
                ValorEncargos    = 0m,
                DataDeLancamento =
                    DateTime.Now,
                ContaDestino = "2",
                BancoDestino = "231",
                TipoDeConta  = "Corrente"
            };

            handler.Handle(command);

            Assert.False(handler.HasNotifications);
        }