public void Add_a_new_product() { //Given var testProduct = new Product() { Name = "Product A" }; var newProduct = new Product() { Name = "Product A" }; var mockRepo = new Mock <IDataRepository <Product> >(); mockRepo.Setup(repo => repo.Insert(newProduct)).Returns(testProduct); var controller = new Inventory.API.Controllers.ProductController(mockRepo.Object); //When var result = controller.AddProduct(newProduct); //Then var actionResult = Assert.IsType <OkObjectResult>(result.Result); var productResult = Assert.IsType <Product>(actionResult.Value); Assert.Equal(testProduct.Name, productResult.Name); mockRepo.Verify(repo => repo.Insert(newProduct), Times.Once); }
public void Return_a_list_of_all_products() { //Given var products = new List <Product> { new Product() { Name = "Product A" }, new Product() { Name = "Product B" } }; var mockRepo = new Mock <IDataRepository <Product> >(); mockRepo.Setup(repo => repo.Get()).Returns(products); var controller = new Inventory.API.Controllers.ProductController(mockRepo.Object); //When var result = controller.GetProducts(); //Then Assert.Equal(2, result.ToList().Count()); mockRepo.Verify(repo => repo.Get(), Times.Once); }
public void Update_an_existing_product() { //Given var mockRepo = new Mock <IDataRepository <Product> >(); mockRepo.Setup(repo => repo.Delete("1")); var controller = new Inventory.API.Controllers.ProductController(mockRepo.Object); //When var result = controller.DeleteProduct("1"); //Then Assert.IsType <OkObjectResult>(result); mockRepo.Verify(repo => repo.Delete("1"), Times.Once); }
public void Return_one_product_by_id() { //Given var product = new Product() { Name = "Product A" }; var mockRepo = new Mock <IDataRepository <Product> >(); mockRepo.Setup(repo => repo.Get("1")).Returns(product); var controller = new Inventory.API.Controllers.ProductController(mockRepo.Object); //When var result = controller.Get("1"); //Then Assert.Equal(product.Id, result.Id); mockRepo.Verify(repo => repo.Get("1"), Times.Once); }