public ProductTestes()
        {
            idUsuario              = Guid.NewGuid();
            NomeProdutoAlterado    = Faker.Name.FullName();
            valor_unitarioAlterado = Faker.RandomNumber.Next(0, 100000);
            qtde_estoqueAlterado   = Faker.RandomNumber.Next(0, 1000000);

            for (int i = 0; i < 10; i++)
            {
                var dto = new ProductDto()
                {
                    Id             = Guid.NewGuid(),
                    nome           = Faker.Name.FullName(),
                    valor_unitario = Faker.RandomNumber.Next(0, 100000),
                    qtde_estoque   = Faker.RandomNumber.Next(0, 100000)
                };
                listaProductDto.Add(dto);
            }

            ProductDto = new ProductDto()
            {
                Id             = idUsuario,
                nome           = NomeProduto,
                valor_unitario = valor_unitarioProduto,
                qtde_estoque   = qtde_estoqueProduto,
                DataUltCompra  = DateTime.UtcNow,
                ValorUltVenda  = Faker.RandomNumber.Next(0, 100000)
            };

            ProductDtoCreate = new ProductDtoCreate()
            {
                nome           = NomeProduto,
                valor_unitario = valor_unitarioProduto,
                qtde_estoque   = qtde_estoqueProduto
            };

            ProductDtoCreateResult = new ProductDtoCreateResult()
            {
                Id             = idUsuario,
                nome           = NomeProduto,
                valor_unitario = valor_unitarioProduto,
                qtde_estoque   = qtde_estoqueProduto,
            };

            ProductDtoUpdate = new ProductDtoUpdate()
            {
                Id             = idUsuario,
                nome           = NomeProdutoAlterado,
                valor_unitario = valor_unitarioAlterado,
                qtde_estoque   = qtde_estoqueAlterado
            };

            ProductDtoUpdateResult = new ProductDtoUpdateResult()
            {
                Id             = idUsuario,
                nome           = NomeProdutoAlterado,
                valor_unitario = valor_unitarioAlterado,
                qtde_estoque   = qtde_estoqueAlterado
            };
        }
示例#2
0
        public async Task <ActionResult> Update([FromBody] ProductDtoUpdate product)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                var result = await _service.Put(product);

                if (result != null)
                {
                    return(Ok(result));
                }
                else
                {
                    return(BadRequest());
                }
            }
            catch (Exception e)
            {
                var errorCode = (int)HttpStatusCode.InternalServerError;
                var msg       = e.Message;

                if (msg.StartsWith("BadRequest:"))
                {
                    errorCode = (int)HttpStatusCode.BadRequest;
                    msg       = msg.Split(": ")[1];
                }

                return(StatusCode(errorCode, new { error = msg }));
            }
        }
示例#3
0
        public async Task <ActionResult> Put([FromBody] ProductDtoUpdate product)
        {
            if (!ModelState.IsValid)
            {
                return(StatusCode((int)HttpStatusCode.BadRequest, "Ocorreu um erro Desconhecido"));
            }
            if (product.qtde_estoque < 0 || product.valor_unitario < 0)
            {
                return(StatusCode((int)HttpStatusCode.PreconditionFailed, "Os valores informados não são válidos"));
            }
            try
            {
                var result = await _service.Put(product);

                if (result != null)
                {
                    return(Ok(result));
                }
                else
                {
                    return(StatusCode((int)HttpStatusCode.BadRequest, "Ocorreu um erro Desconhecido"));
                }
            }
            catch (ArgumentException)
            {
                return(StatusCode((int)HttpStatusCode.BadRequest, "Ocorreu um erro Desconhecido"));
            }
        }
        public async Task E_Possivel_Realizar_Cotroller_UpdateBadRequest()
        {
            var serviceMock    = new Mock <IProductService>();
            var Nome           = Faker.Name.FullName();
            var Valor_Unitario = Faker.RandomNumber.Next(0, 10000);
            var qtde_Estoque   = Faker.RandomNumber.Next(0, 10000);

            serviceMock.Setup(m => m.Put(It.IsAny <ProductDtoUpdate>())).ReturnsAsync(
                new ProductDtoUpdateResult
            {
                Id             = Guid.NewGuid(),
                nome           = Nome,
                valor_unitario = Valor_Unitario,
                qtde_estoque   = qtde_Estoque
            }
                );

            _controller = new ProductsController(serviceMock.Object);
            _controller.ModelState.AddModelError("Email", "É um Campo Obrigatório");
            var ProductDtoUpdate = new ProductDtoUpdate
            {
                Id             = Guid.NewGuid(),
                nome           = Nome,
                valor_unitario = Valor_Unitario,
                qtde_estoque   = qtde_Estoque
            };

            var result = await _controller.Put(ProductDtoUpdate);

            ObjectResult resultValue = Assert.IsType <ObjectResult>(result);

            Assert.Equal(400, resultValue.StatusCode);
            Assert.Equal("Ocorreu um erro Desconhecido", resultValue.Value);
        }
        public async Task <ProductDtoUpdateResult> Put(ProductDtoUpdate product)
        {
            var model  = _mapper.Map <ProductModel>(product);
            var entity = _mapper.Map <ProductEntity>(model);
            var result = await _productrepository.UpdateAsync(entity);

            return(_mapper.Map <ProductDtoUpdateResult>(result));
        }
        public async Task <ProductDtoUpdateResult> Put(ProductDtoUpdate product)
        {
            var model  = _mapper.Map <ProductModel>(product);
            var entity = _mapper.Map <ProductEntity>(model);

            //Verifica se o nome existe em outro produto (caso seja alterado)
            var nameExist = await _repository.FindByName(product.Name);

            if (nameExist != null && !nameExist.Id.Equals(product.Id))
            {
                throw new Exception("BadRequest: Nome já utilizado em outro produto}");
            }

            var result = await _repository.UpdateAsync(entity);

            return(_mapper.Map <ProductDtoUpdateResult>(result));
        }
        public async Task E_Possivel_Realizar_Cotroller_Update()
        {
            var serviceMock    = new Mock <IProductService>();
            var Nome           = Faker.Name.FullName();
            var Valor_Unitario = Faker.RandomNumber.Next(0, 10000);
            var qtde_Estoque   = Faker.RandomNumber.Next(0, 10000);

            serviceMock.Setup(m => m.Put(It.IsAny <ProductDtoUpdate>())).ReturnsAsync(
                new ProductDtoUpdateResult
            {
                Id             = Guid.NewGuid(),
                nome           = Nome,
                valor_unitario = Valor_Unitario,
                qtde_estoque   = qtde_Estoque
            }
                );

            _controller = new ProductsController(serviceMock.Object);
            var ProductDtoUpdate = new ProductDtoUpdate
            {
                Id             = Guid.NewGuid(),
                nome           = Nome,
                valor_unitario = Valor_Unitario,
                qtde_estoque   = qtde_Estoque
            };

            var result = await _controller.Put(ProductDtoUpdate);

            Assert.True(result is OkObjectResult);

            var resultValue = ((OkObjectResult)result).Value as ProductDtoUpdateResult;

            Assert.NotNull(resultValue);
            Assert.Equal(ProductDtoUpdate.nome, resultValue.nome);
            Assert.Equal(ProductDtoUpdate.valor_unitario, resultValue.valor_unitario);
            Assert.Equal(ProductDtoUpdate.qtde_estoque, resultValue.qtde_estoque);
        }