public Produto ConverterAdicionar(AdicionarProdutoCommand command) { return(new Produto() { Nome = command.Nome, Preco = command.Preco }); }
public async Task <ActionResult <RetornoVM> > Adicionar([FromBody] ProdutoViewModel produto) { var command = new AdicionarProdutoCommand(produto.Descricao, produto.Valor, produto.QuantidadeEmEstoque); var retorno = await Mediator.Send(command); if (!Guid.TryParse(retorno, out Guid guidAux)) { return(BadRequest(retorno)); } return(Ok(guidAux.ToString())); }
public async Task <ResponseToUser> CreateAsync(AdicionarProdutoCommand command) { var result = _adicionarValidator.Validate(command); if (!result.IsValid) { return(ErrorResult(result.Errors.Select(q => q.ErrorMessage))); } var entidade = _produtoMapper.ConverterAdicionar(command); await _produtoRepository.CreateAsync(entidade); return(SuccessResult()); }
public async Task <IActionResult> Post(AdicionarProdutoCommand command) { var result = await _produtoService.CreateAsync(command); if (result.Success) { return(Ok("Produto cadastrado com sucesso!")); } else { return(BadRequest(result.Messages)); } }
public async Task QuandoAdicionarProdutoComDescricaoJaExistenteEntaoOProdutoNaoDeveSerSalvo() { //Arrange var commandTest = new AdicionarProdutoCommand("Produto1", 10, 10); var handler = new ProdutoCommandHandler(ProdutoRepositorioTest); //Act var result = await handler.Handle(commandTest, CancellationToken.None); //Assert var entity = ProdutoRepositorioTest.GetByDescricao(commandTest.ProdutoDescricao); Assert.NotNull(entity); Assert.Equal("Já existe produto com esta descrição", result); }
public async Task QuandoAdicionarProdutoComQtdEstoqueInvalidoEntaoOProdutoNaoDeveSerSalvo() { //Arrange var commandTest = new AdicionarProdutoCommand("Produto6", 10, -10); var handler = new ProdutoCommandHandler(ProdutoRepositorioTest); //Act var result = await handler.Handle(commandTest, CancellationToken.None); //Assert var entity = ProdutoRepositorioTest.GetByDescricao(commandTest.ProdutoDescricao); Assert.Null(entity); Assert.Equal("Quantidade em estoque não pode ser negativa", result); }
public async Task QuandoAdicionarProdutoComValorInvalidoEntaoOProdutoNaoDeveSerSalvo() { //Arrange var commandTest = new AdicionarProdutoCommand("Produto5", -1, 1); var handler = new ProdutoCommandHandler(ProdutoRepositorioTest); //Act var result = await handler.Handle(commandTest, CancellationToken.None); //Assert var entity = ProdutoRepositorioTest.GetByDescricao(commandTest.ProdutoDescricao); Assert.Null(entity); Assert.Equal("Valor do produto não pode ser negativo", result); }
public async Task QuandoAdicionarProdutoValidoEntaoOProdutoDeveSerSalvo() { //Arrange var commandTest = new AdicionarProdutoCommand("Produto4", 120, 12); var handler = new ProdutoCommandHandler(ProdutoRepositorioTest); //Act var result = await handler.Handle(commandTest, CancellationToken.None); //Assert var entity = ProdutoRepositorioTest.GetById(Guid.Parse(result)); Assert.NotNull(entity); Assert.Equal("Produto4", entity.ProdutoDescricao); Assert.Equal(120, entity.ProdutoValor); Assert.Equal(12, entity.ProdutoQtdEstoque); }