public void ProductControllerDelete(int productIdentifier)
        {
            // ARRANGE
            var productController = new api.Controllers.ProductController(_productService);

            // ACT
            var actionResult = productController.Delete(productIdentifier);
            var okResult     = actionResult as ObjectResult;

            // ASSERT
            Assert.NotNull(okResult);
            Assert.AreEqual(200, okResult.StatusCode, $"Status code is not 200 but {okResult.StatusCode?.ToString()}");
            Assert.NotNull(okResult.Value);
            Assert.AreEqual(true, okResult.Value, "Product removal failed");
        }
        public void ProductControllerPut()
        {
            // ARRANGE
            var product = new api.Model.Product {
                ProductID = 6, ProductName = "iPhone X", ProductDescription = "Mobile phones.", Price = 78000
            };
            var productController = new api.Controllers.ProductController(_productService);

            // ACT
            var actionResult = productController.Modify(product);
            var okResult     = actionResult as ObjectResult;

            // ASSERT
            Assert.NotNull(okResult);
            Assert.AreEqual(200, okResult.StatusCode, $"Status code is not 200 but {okResult.StatusCode?.ToString()}");
            Assert.NotNull(okResult.Value);
            Assert.AreEqual(true, okResult.Value, "Product modification failed");
        }
        public void ProductControllerGetWithIdentfier(int productIdentifier)
        {
            // ARRANGE
            var productController = new api.Controllers.ProductController(_productService);

            // ACT
            var actionResult = productController.Get(productIdentifier);
            var okResult     = actionResult as ObjectResult;

            // ASSERT
            Assert.NotNull(okResult);
            Assert.AreEqual(200, okResult.StatusCode, $"Status code is not 200 but {okResult.StatusCode?.ToString()}");
            Assert.NotNull(okResult.Value, "Product is null");
            Assert.IsInstanceOf(typeof(api.Model.Product), okResult.Value);

            var product = okResult.Value as api.Model.Product;

            Assert.NotNull(product);
            Assert.IsTrue(product.ProductID > 0, "Product returned is empty.");
        }
        public void ProductControllerGet()
        {
            // ARRANGE
            var productController = new api.Controllers.ProductController(_productService);

            // ACT
            var actionResult = productController.Get();
            var okResult     = actionResult as ObjectResult;

            // ASSERT
            Assert.NotNull(okResult);
            Assert.AreEqual(200, okResult.StatusCode, $"Status code is not 200 but {okResult.StatusCode?.ToString()}");
            Assert.NotNull(okResult.Value);
            Assert.IsInstanceOf(typeof(IEnumerable <api.Model.Product>), okResult.Value);

            var products = okResult.Value as IEnumerable <api.Model.Product>;

            Assert.NotNull(products);
            Assert.IsNotEmpty(products, "product list is empty.");
            Console.WriteLine($"Total products : {products.Count()}");
        }