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); }
public async Task AprovarPagamento(PagamentoAprovadoEvento pagamentoAprovadoEvento) { var pedido = _pedidoRepositorio.ObterPedidoPeloId(pagamentoAprovadoEvento.IdDoPedido); pedido.AprovarPagamento(); await _pedidoRepositorio.AtualizarPedido(pedido); await _eventoRepositorio.Salvar(pagamentoAprovadoEvento); }
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)))); }