public async Task deve_retornar_sucesso_quando_editar_pretendente()
        {
            //arrange
            var comando       = new RemoverPretendenteCommand(Guid.NewGuid());
            var evento        = new PretendenteRemovidoEvent(comando.Id);
            var pretendenteDb = new Pretendente("Nome do pretendente", "*****@*****.**");

            _bus.Setup(p => p.Publish(It.IsAny <PretendenteRemovidoEvent>(), _cancellationToken))
            .Callback <PretendenteRemovidoEvent, CancellationToken>
                ((re, ca) => { evento = re; _cancellationToken = ca; });

            _pretendenteRepositorio.Setup(p => p.ObterAsync(comando.Id)).ReturnsAsync(pretendenteDb);
            _pretendenteRepositorio.Setup(p => p.RemoverAsync(comando.Id)).Returns(Task.CompletedTask);

            //act
            var resultado = await _handler.Handle(comando, _cancellationToken);

            //assert
            Assert.True(resultado.Sucesso);
            Assert.Equal(resultado.StatusCode, HttpStatusCode.OK);
            Assert.Equal(resultado.Mensagem, "Operação realizada com sucesso.");
            _pretendenteRepositorio.Verify(p => p.RemoverAsync(It.IsAny <Guid>()), Times.Once);
            _bus.Verify(p => p.Publish(evento, _cancellationToken), Times.Once);
        }
示例#2
0
 public Task Handle(PretendenteRemovidoEvent notification, CancellationToken cancellationToken)
 {
     _logger.LogInformation($"Pretendente {notification.Id} foi removido.");
     return(Task.CompletedTask);
 }