public void Can_Edit_Product() { Mock<IProductRepository> mock = new Mock<IProductRepository>(); 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); Product p1 = target.Edit(1).ViewData.Model as Product; Product p2 = target.Edit(2).ViewData.Model as Product; Product p3 = target.Edit(3).ViewData.Model as Product; Assert.AreEqual(1, p1.ProductID); Assert.AreEqual(2, p2.ProductID); Assert.AreEqual(3, p3.ProductID); }
public void Can_Save_Valid_Changes() { Mock<IProductRepository> mock = new Mock<IProductRepository>(); AdminController target = new AdminController(mock.Object); Product product = new Product { Name = "Test" }; ActionResult result = target.Edit(product); mock.Verify(m => m.SaveProduct(product)); Assert.IsNotInstanceOfType(result, typeof(ViewResult)); }
public void Cannot_Edit_Nonexistent_Product() { Mock<IProductRepository> mock = new Mock<IProductRepository>(); 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); Product result = (Product)target.Edit(4).ViewData.Model; Assert.IsNull(result); }
public void Cannot_Save_Invalid_Changes() { Mock<IProductRepository> mock = new Mock<IProductRepository>(); AdminController target = new AdminController(mock.Object); Product product = new Product { Name = "Test" }; target.ModelState.AddModelError("error", "error"); ActionResult result = target.Edit(product); mock.Verify(m => m.SaveProduct(It.IsAny<Product>()), Times.Never()); Assert.IsNotInstanceOfType(result, typeof(ViewResult)); }