public async Task Run(
     [ActivityTrigger]  PagamentoAprovadoEvento evento,
     [ServiceBus(nameof(PagamentoAprovadoEvento), Connection = "AzureServiceBus", EntityType = EntityType.Queue)] IAsyncCollector <PagamentoAprovadoEvento> outputQueue,
     ExecutionContext context,
     ILogger log)
 {
     log.LogInformation("Notificando que pagamento {0} foi aprovado para processo {1} e pedido {2}", evento.PagamentoId, evento.ProcessoId, evento.PedidoId);
     await outputQueue.AddAsync(evento);
 }
Beispiel #2
0
        public async Task AprovarPagamento(PagamentoAprovadoEvento pagamentoAprovadoEvento)
        {
            var pedido = _pedidoRepositorio.ObterPedidoPeloId(pagamentoAprovadoEvento.IdDoPedido);

            pedido.AprovarPagamento();
            await _pedidoRepositorio.AtualizarPedido(pedido);

            await _eventoRepositorio.Salvar(pagamentoAprovadoEvento);
        }
Beispiel #3
0
        public async Task Deve_salvar_evennto_de_pagamento_aprovado_ao_aprovar_pagamento()
        {
            var idDoPedido                  = _faker.Random.Int(0);
            var nomeDoDonoDoCartao          = _faker.Person.FirstName;
            var numeroDoNovoCartaoDeCredito = _faker.Random.Int(0).ToString();
            var produto = _faker.Random.Word();
            var valor   = _faker.Random.Decimal();
            var pedido  = PedidoBuilder.Novo().Criar();
            var pagamentoAprovadoEvento = new PagamentoAprovadoEvento(idDoPedido, nomeDoDonoDoCartao, numeroDoNovoCartaoDeCredito, produto, valor);

            _pedidoRepositorio.Setup(pr => pr.ObterPedidoPeloId(idDoPedido)).Returns(pedido);
            _pedidoRepositorio.Setup(pr => pr.AtualizarPedido(It.IsAny <Pedido>()));
            _eventoRepositorio.Setup(er => er.Salvar(It.IsAny <PagamentoAprovadoEvento>()));

            await _atualizacaoDePedido.AprovarPagamento(pagamentoAprovadoEvento);

            _eventoRepositorio.Verify(er => er.Salvar(It.Is <PagamentoAprovadoEvento>(
                                                          evento => evento.ToExpectedObject().Matches(pagamentoAprovadoEvento))));
        }