Пример #1
0
        public async Task <ActionResult> UpdateProduct(int id, ProductSlim productToUpdate)
        {
            Product productUpdated = await _productsService.UpdateProduct(id, productToUpdate);

            if (productUpdated is null)
            {
                return(NotFound());
            }

            return(Ok(productUpdated));
        }
        public async Task UpdateProduct_WithInvalidProductId_AndValidUpdateParams_ReturnsNotFound()
        {
            ProductSlim toUpdate = new ProductSlim {
                Name = "Updated"
            };

            A.CallTo(() => _productsService.UpdateProduct(3, toUpdate)).Returns((Product)null);
            ActionResult returns = await _productController.UpdateProduct(3, toUpdate);

            A.CallTo(() => _productsService.UpdateProduct(A <int> ._, A <ProductSlim> ._)).MustHaveHappened();
            Assert.AreEqual(returns.GetType(), typeof(NotFoundResult));
        }
        public async Task UpdateProduct_WithValidProductId_AndValidUpdateParams_ReturnsOk()
        {
            ProductSlim toUpdate = new ProductSlim {
                Name = "Updated"
            };

            A.CallTo(() => _productsService.UpdateProduct(1, toUpdate))
            .Returns(new Product {
                Price       = _productsFixtures.Product1.Price, Name = toUpdate.Name,
                ProductCode = _productsFixtures.Product1.ProductCode
            });
            ActionResult returns = await _productController.UpdateProduct(1, toUpdate);

            A.CallTo(() => _productsService.UpdateProduct(A <int> ._, A <ProductSlim> ._)).MustHaveHappened();
            Assert.AreEqual(returns.GetType(), typeof(OkObjectResult));
        }
Пример #4
0
        /// <inheritdoc />
        public async Task <Product> UpdateProduct(int id, ProductSlim product)
        {
            Product toUpdate = await GetProduct(id);

            if (toUpdate == default)
            {
                return(null);
            }

            toUpdate.Name  = product.Name ?? toUpdate.Name;
            toUpdate.Price = product.Price ?? toUpdate.Price;

            EntityEntry <Product> updatedProduct = _context.Update(toUpdate);
            await _context.SaveChangesAsync();

            return(updatedProduct.Entity);
        }