public void Delete_should_remove_the_product() { // Arrange Product product = new Product { ProductID = 1, ProductName = "Product 1" }; mock.Setup(m => m.Products.GetById(It.IsAny<int>())).Returns(product); mock.Setup(m => m.Products.Delete(It.IsAny<int>())); mock.Setup(m => m.SaveChanges()); ProductController controller = new ProductController(mock.Object); // Act var result = controller.Delete(1) as RedirectToRouteResult;; var viewModel = controller.ViewData.Model as ProductsViewModel; // Assert // Check that each method was only called once. mock.Verify(x => x.Products.Delete(It.IsAny<int>()), Times.Once()); mock.Verify(x => x.SaveChanges(), Times.Once()); //check that redirec to index happened Assert.AreEqual("Index", result.RouteValues["action"]); }