public void GetProduct_ShouldReturnProductWithSameID()
        {
            // arrange
            var context = new TestStoreAppContext();
            context.Products.Add(this.GetDemoProduct());

            var controller = new ProductsController(context);

            // act
            var result = controller.GetProduct(3) as OkNegotiatedContentResult<Product>;

            // assert
            Assert.Equal(3, result.Content.Id);
        }
        public void GetProducts_ShouldReturnAllProducts()
        {
            // arrange
            var context = new TestStoreAppContext();
            context.Products.Add(new Product { Id = 1, Name = "Demo1", Price = 20 });
            context.Products.Add(new Product { Id = 2, Name = "Demo2", Price = 30 });
            context.Products.Add(new Product { Id = 3, Name = "Demo3", Price = 40 });
            var controller = new ProductsController(context);

            // act
            var result = controller.GetProducts() as TestProductDbSet;

            // assert
            Assert.Equal(3, result.Local.Count);
        }
        public void DeleteProduct_ShouldReturnOK()
        {
            // arrange
            var context = new TestStoreAppContext();
            var item = this.GetDemoProduct();
            context.Products.Add(item);

            var controller = new ProductsController(context);

            // act
            var result = controller.DeleteProduct(3) as OkNegotiatedContentResult<Product>;

            // assert
            Assert.Equal(item.Id, result.Content.Id);
        }