public async Task deve_retornar_erro_quando_nao_encontrar_pretendente() { //arrange var comando = new RemoverPretendenteCommand(Guid.NewGuid()); Pretendente pretendente = null; _pretendenteRepositorio.Setup(p => p.ObterAsync(comando.Id)).ReturnsAsync(pretendente); //act var resultado = await _handler.Handle(comando, _cancellationToken); //assert Assert.False(resultado.Sucesso); Assert.Equal(resultado.StatusCode, HttpStatusCode.NotFound); Assert.Equal(resultado.Mensagem, "Objeto não encontrado."); _pretendenteRepositorio.Verify(p => p.RemoverAsync(It.IsAny <Guid>()), Times.Never); _bus.Verify(p => p.Publish(It.IsAny <PretendenteRemovidoEvent>(), _cancellationToken), Times.Never); }
public async Task <RequestResult> Handle(RemoverPretendenteCommand request, CancellationToken cancellationToken) { var pretendenteDb = await _pretendenteRepositorio.ObterAsync(request.Id); if (pretendenteDb == null) { _logger.LogError($"[Remover pretendente] - pretendente {request.Id} não encontrato."); return(new RequestResult().NotFound()); } await _pretendenteRepositorio.RemoverAsync(request.Id); await _bus.Publish(new PretendenteRemovidoEvent(request.Id)); var avatar = new AvatarArquivo(request.Id.ToString(), _configuration); avatar.RemoverAvatar(); return(new RequestResult().Ok()); }
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); }
public async Task <IActionResult> Delete(Guid id, CancellationToken cancellationToken) { var command = new RemoverPretendenteCommand(id); return(RetornarRequestResult(await _bus.Send(command, cancellationToken))); }