Example #1
0
        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"));
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }