public async Task <Guid> AlterarAsync(Guid aggregateId, AlterarProdutoDto dto) { var command = new AlterarProdutoCommand(aggregateId, dto.Nome, dto.Preco); await _dispatcher.DispatchAsync(command); await _unitOfWork.CommitAsync(); return(aggregateId); }
public async Task QuandoAlterarProdutoComDadosValidosEntaoOProdutoDeveSerAlterado() { //Arrange var produto = ProdutoRepositorioTest.GetByDescricao("Produto1"); var commandTest = new AlterarProdutoCommand(produto.Id, "Produto1Teste", 1, 1); var handler = new ProdutoCommandHandler(ProdutoRepositorioTest); //Act var result = await handler.Handle(commandTest, CancellationToken.None); //Assert var produtoAtualizado = ProdutoRepositorioTest.GetById(Guid.Parse(result)); Assert.NotNull(produtoAtualizado); Assert.Equal("Produto1Teste", produtoAtualizado.ProdutoDescricao); Assert.Equal(1, produtoAtualizado.ProdutoValor); Assert.Equal(1, produtoAtualizado.ProdutoQtdEstoque); }
public async Task <ActionResult> Alterar([FromBody] ProdutoViewModel produto) { Guid guidAux; if (Guid.TryParse(produto.Id, out guidAux)) { var command = new AlterarProdutoCommand(guidAux, produto.Descricao, produto.Valor, produto.QuantidadeEmEstoque); var retorno = await Mediator.Send(command); if (!Guid.TryParse(retorno, out guidAux)) { return(BadRequest(retorno)); } return(Ok(guidAux.ToString())); } return(BadRequest("Não foi possível converter o id em GUID")); }
public async Task QuandoAlterarProdutoNaoExistenteEntaoOProdutoNaoDeveSerAlterado() { //Arrange var produto = ProdutoRepositorioTest.GetByDescricao("Produto3"); var commandTest = new AlterarProdutoCommand(Guid.NewGuid(), "Produto3", 1, 1); var handler = new ProdutoCommandHandler(ProdutoRepositorioTest); //Act var result = await handler.Handle(commandTest, CancellationToken.None); //Assert var produtoAtualizado = ProdutoRepositorioTest.GetByDescricao("Produto3"); Assert.NotNull(produtoAtualizado); Assert.Equal("Produto não encotrando para o id informado", result); Assert.Equal(produto.ProdutoDescricao, produtoAtualizado.ProdutoDescricao); Assert.Equal(produto.ProdutoValor, produtoAtualizado.ProdutoValor); Assert.Equal(produto.ProdutoQtdEstoque, produtoAtualizado.ProdutoQtdEstoque); }
public async Task QuandoAlterarDescricaoProdutoParaDescricaoJaExistenteEntaoOProdutoNaoDeveSerAlterado() { //Arrange var produto = ProdutoRepositorioTest.GetByDescricao("Produto3"); var commandTest = new AlterarProdutoCommand(produto.Id, "Produto2", 1, 1); var handler = new ProdutoCommandHandler(ProdutoRepositorioTest); //Act var result = await handler.Handle(commandTest, CancellationToken.None); //Assert var produtoAtualizado = ProdutoRepositorioTest.GetByDescricao("Produto3"); Assert.NotNull(produtoAtualizado); Assert.Equal("Já existe produto com esta descrição", result); Assert.Equal(produto.ProdutoDescricao, produtoAtualizado.ProdutoDescricao); Assert.Equal(produto.ProdutoValor, produtoAtualizado.ProdutoValor); Assert.Equal(produto.ProdutoQtdEstoque, produtoAtualizado.ProdutoQtdEstoque); }
public async Task QuandoAlterarProdutoComQtdEstoqueInvalidoEntaoOProdutoNaoDeveSerAlterado() { //Arrange var produto = ProdutoRepositorioTest.GetByDescricao("Produto3"); var commandTest = new AlterarProdutoCommand(produto.Id, "Produto3Teste", 1, -1); var handler = new ProdutoCommandHandler(ProdutoRepositorioTest); //Act var result = await handler.Handle(commandTest, CancellationToken.None); //Assert var produtoAtualizado = ProdutoRepositorioTest.GetByDescricao("Produto3"); Assert.NotNull(produtoAtualizado); Assert.Equal("Quantidade em estoque não pode ser negativa", result); Assert.Equal(produto.ProdutoDescricao, produtoAtualizado.ProdutoDescricao); Assert.Equal(produto.ProdutoValor, produtoAtualizado.ProdutoValor); Assert.Equal(produto.ProdutoQtdEstoque, produtoAtualizado.ProdutoQtdEstoque); }