public void Can_Delete_Valid_Products()
        {
            // Arrange
            Product prod = new Product { ProductID = 2, Name = "Test" };
            Mock<IProductsRepository> mock = new Mock<IProductsRepository>();
            mock.Setup(m => m.Products).Returns(new Product[]
                {
                    new Product { ProductID = 1, Name = "P1"},
                    prod,
                    new Product { ProductID = 3, Name = "P3"}
                }.AsQueryable());
            AdminController target = new AdminController(mock.Object);

            // Act
            target.Delete(prod.ProductID);

            // Assert
            mock.Verify(m => m.DeleteProduct(prod));
        }
        public void Cannot_Delete_Invalid_Products()
        {
            // Arrange
            Mock<IProductsRepository> mock = new Mock<IProductsRepository>();
            mock.Setup(m => m.Products).Returns(new Product[]
                {
                    new Product { ProductID = 1, Name = "P1"},
                    new Product { ProductID = 2, Name = "P2"},
                    new Product { ProductID = 3, Name = "P3"}
                }.AsQueryable());
            AdminController target = new AdminController(mock.Object);

            // Act
            target.Delete(100);

            // Assert
            mock.Verify(m => m.DeleteProduct(It.IsAny<Product>()), Times.Never());
        }