Exemplo n.º 1
0
 public Produto ConverterAdicionar(AdicionarProdutoCommand command)
 {
     return(new Produto()
     {
         Nome = command.Nome,
         Preco = command.Preco
     });
 }
Exemplo n.º 2
0
        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()));
        }
Exemplo n.º 3
0
        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());
        }
Exemplo n.º 4
0
        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);
        }