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); }
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()); }
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); }