コード例 #1
0
        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"]);
        }