Ejemplo n.º 1
0
        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
            }));
        }
Ejemplo n.º 2
0
        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
            }));
        }
Ejemplo n.º 3
0
        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"));
        }
Ejemplo n.º 4
0
        public IActionResult Apagar([FromServices] ProdutoHandler handler, [FromBody] ApagarProdutoCommand command)
        {
            var result = handler.Handle(command);

            return(result.Success ? (IActionResult)Accepted(result) : BadRequest(result));
        }