public async Task deve_retornar_sucesso_quando_editar_pretendente() { //arrange var comando = new EditarPretendenteCommand(Guid.NewGuid(), "Nome do pretendente atualizado"); var evento = new PretendenteEditadoEvent(comando.Id, comando.Nome); var pretendenteDb = new Pretendente("Nome do pretendente", "*****@*****.**"); _bus.Setup(p => p.Publish(It.IsAny <PretendenteEditadoEvent>(), _cancellationToken)) .Callback <PretendenteEditadoEvent, CancellationToken> ((re, ca) => { evento = re; _cancellationToken = ca; }); _pretendenteRepositorio.Setup(p => p.ObterAsync(comando.Id)).ReturnsAsync(pretendenteDb); _pretendenteRepositorio.Setup(p => p.AtualizarAsync(pretendenteDb)).Returns(Task.CompletedTask); //act var resultado = await _handler.Handle(comando, _cancellationToken); //assert Assert.True(resultado.Sucesso); Assert.Equal(resultado.StatusCode, HttpStatusCode.OK); Assert.Equal(comando.Nome, pretendenteDb.Nome); Assert.Equal(resultado.Mensagem, "Operação realizada com sucesso."); _pretendenteRepositorio.Verify(p => p.AtualizarAsync(It.IsAny <Pretendente>()), Times.Once); _bus.Verify(p => p.Publish(evento, _cancellationToken), Times.Once); }
public Task Handle(PretendenteEditadoEvent notification, CancellationToken cancellationToken) { _logger.LogInformation($"Pretendente {notification.Id} teve o nome alterado para: {notification.Nome}."); return(Task.CompletedTask); }