public HttpResponseMessage PatchProduct(ProductPatchViewModel productModel) { if (!ModelState.IsValid) { return(ReturnResponse(new Object(), null, string.Empty, HttpStatusCode.BadRequest, "Not a valid model")); } if (productModel.ProductID > 0) { var prodContext = _buildModelsService.GetProduct(productModel.ProductID); if (prodContext != null) { prodContext.ProductName = productModel.ProductName; prodContext.ReorderLevel = productModel.ReorderLevel; prodContext.UnitPrice = productModel.UnitPrice; prodContext.UnitsInStock = productModel.UnitsInStock; prodContext.UnitsOnOrder = productModel.UnitsOnOrder; _buildModelsService.UpdateProduct(); productModel = Mapper.Map <ProductPatchViewModel>(prodContext); return(ReturnResponse(productModel, new JsonMediaTypeFormatter(), "application/json", HttpStatusCode.OK, string.Empty)); } } return(ReturnResponse(productModel, new JsonMediaTypeFormatter(), "application/json", HttpStatusCode.NotFound, "Unable to find the product")); }
public void PatchProduct_Update_Product_Model_Not_Valid() { // Arrange ProductPatchViewModel product = new ProductPatchViewModel { ProductID = 191919191, ProductName = string.Empty, UnitPrice = 1.39m, UnitsInStock = 90, UnitsOnOrder = 100 }; ProductsController productsController = new ProductsController(new BuildModelsService()); productsController.ModelState.AddModelError("ProductName", "Is required"); // Act var productHttpResponse = productsController.PatchProduct(product); // Assert productHttpResponse.StatusCode.Should().Be(HttpStatusCode.BadRequest); }
public void PatchProduct_Update_Product_Not_Found() { // Arrange ProductPatchViewModel product = new ProductPatchViewModel { ProductID = 19191919, ProductName = "BullsEye BBQ Sauce", UnitPrice = 1.19m, UnitsInStock = 91, UnitsOnOrder = 11, ReorderLevel = 5 }; ProductsController productsController = new ProductsController(new BuildModelsService()); // Act var productHttpResponse = productsController.PatchProduct(product); var productViewModel = (ProductPatchViewModel)((System.Net.Http.ObjectContent)productHttpResponse.Content).Value; // Assert productHttpResponse.StatusCode.Should().Be(HttpStatusCode.NotFound); }