public void Can_Select_Categories() { // Arrange Mock <IProductRepository> mock = new Mock <IProductRepository>(); mock.Setup(m => m.Products).Returns((new Product[] { new Product { ProductID = 1, Name = "P1", Category = "Apples" }, new Product { ProductID = 2, Name = "P2", Category = "Apples" }, new Product { ProductID = 3, Name = "P3", Category = "Plums" }, new Product { ProductID = 4, Name = "P4", Category = "Oranges" }, }).AsQueryable <Product>()); NavigationMenuviewComponent target = new NavigationMenuviewComponent(mock.Object); // Act string[] results = ((IEnumerable <string>)(target.Invoke() as ViewViewComponentResult).ViewData.Model).ToArray(); // Assert Assert.True(Enumerable.SequenceEqual(new string[] { "Apples", "Oranges", "Plums" }, results)); }
public void Indicates_Selected_Category() { // Arrange string categoryToSelect = "Apples"; Mock <IProductRepository> mock = new Mock <IProductRepository>(); mock.Setup(m => m.Products).Returns((new Product[] { new Product { ProductID = 1, Name = "P1", Category = "Apples" }, new Product { ProductID = 4, Name = "P4", Category = "Oranges" }, }).AsQueryable <Product>()); NavigationMenuviewComponent target = new NavigationMenuviewComponent(mock.Object); target.ViewComponentContext = new ViewComponentContext { ViewContext = new ViewContext { RouteData = new RouteData() } }; target.RouteData.Values["category"] = categoryToSelect; // Act string result = (string)(target.Invoke() as ViewViewComponentResult).ViewData["SelectedCategory"]; // Assert Assert.Equal(categoryToSelect, result); }