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 }; }
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 })); } }
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); }