public void ApagarProdutoSucesso() { var produtoServiceMock = new ProdutoServicoMock(); var produtoServico = produtoServiceMock.ConfigurarApagarSucesso().Build(); var apagarCommand = new ApagarProdutoCommand(produtoServico, new ApagarProdutoValidador(produtoServico)); Assert.DoesNotThrowAsync(() => apagarCommand.Executar(new ApagarProdutosInput { CodigoProduto = 1 })); }
public void ApagarProdutoNaoEncontrado() { var produtoServiceMock = new ProdutoServicoMock(); var produtoServico = produtoServiceMock.ConfigurarApagarNaoEncontrado().Build(); var apagarCommand = new ApagarProdutoCommand(produtoServico, new ApagarProdutoValidador(produtoServico)); Assert.ThrowsAsync <ArgumentException>(() => apagarCommand.Executar(new ApagarProdutosInput { CodigoProduto = 1 })); }
public IGenericCommandResult Handle(ApagarProdutoCommand command) { var produto = _repo.ObterProdutoPorId(command.ProdutoId); if (produto is null) { return(new GenericCommandResult(false, "Produto não localizado", command)); } _repo.ApagarProduto(produto); return(new GenericCommandResult(true, "Produto apagado com sucesso")); }
public IActionResult Apagar([FromServices] ProdutoHandler handler, [FromBody] ApagarProdutoCommand command) { var result = handler.Handle(command); return(result.Success ? (IActionResult)Accepted(result) : BadRequest(result)); }