public void CannotDeleteInvalidParentCategories()
        {
            // Arrange - create a controller
            var controller = new AdminController(this._mockRepository.Object);

            // Action - attempt to delete using a ParentCategoryId that does not exist
            controller.DeleteParentCategory(95);

            // assert - ensure that the repository DeleteParentCategory method was not called
            this._mockRepository.Verify(m => m.DeleteParentCategory(It.IsAny<ParentCategory>()), Times.Never());
        }
        public void CanDeleteValidParentCategories()
        {
            // Arrange - create a parentCategory
            ParentCategory parentCategory = new ParentCategory { ParentCategoryId = 2, Name = "Test" };

            // Arrange - create a local mock repository
            var localMock = new Mock<IProductRepository>();
            localMock.Setup(m => m.ParentCategories).Returns(new ParentCategory[]
                {
                    new ParentCategory {ParentCategoryId = 1, Name = "PC1"},
                    parentCategory,
                    new ParentCategory {ParentCategoryId = 3, Name = "PC3"}
                }.AsQueryable());

            // Arrange - create a controller
            var controller = new AdminController(localMock.Object);

            // Action - delete the parentCategory
            controller.DeleteParentCategory(parentCategory.ParentCategoryId);

            // assert - ensure that the repository delete method was called with the correct ParentCategory
            localMock.Verify(m => m.DeleteParentCategory(parentCategory));
        }