public void Can_Edit_Product() { var dbMock = SetupMock(); var repo = new ProductRepository(dbMock.Object); var controller = new ProductsController(repo); controller.PutProduct(new Product { Id = 1, Name = "P2" }); controller.GetProduct(1); }
public void Can_Add_Product() { var mock = CreateMockObject(); var product = new Product{ Id = 1, Name = "Prod1", Category = "Gaming", Price = 255}; var config = new HttpConfiguration(); var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/api/products/1"); var route = config.Routes.MapHttpRoute("DefaultApi", "api/products/{id}"); mock.Setup(m => m.Add(It.IsAny<Product>())).Returns<Product>(m => new Product()); ProductsController controller = new ProductsController(mock.Object); controller.Request = request; controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config; controller.Request.Properties[HttpPropertyKeys.HttpRouteDataKey] = route; var result = controller.PostProduct(product); mock.Verify(m => m.Add(It.IsAny<Product>()), Times.Once()); Assert.AreEqual(System.Net.HttpStatusCode.Created, result.StatusCode); }
public void Can_Give_Products() { Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.GetAll()).Returns(new Product[] { new Product { Id = 1, Name = "Prod1"}, new Product { Id = 2, Name = "Prod2"}, new Product { Id=3, Name = "Prod3"}, new Product { Id= 4, Name = "Prod4"}, new Product{ Id=5, Name="Prod5"} }.AsEnumerable()); ProductsController controller = new ProductsController(mock.Object); IEnumerable<Product> result = (IEnumerable<Product>)controller.GetAllProducts(); Product[] prodArray = result.ToArray(); Assert.IsTrue(prodArray.Length == 5); Assert.AreEqual(prodArray[0].Name, "Prod1"); Assert.AreEqual(prodArray[4].Name, "Prod5"); }