public void Index_ReturnsListOfItems() { //Arrange var items = new List <Clothing>(); items.Add(new Clothing { Name = "testShirt1", Material = "testMaterial1", Color = "testColor1", DateAdded = DateTime.Now }); items.Add(new Clothing { Name = "testShirt2", Material = "testMaterial2", Color = "testColor1", DateAdded = DateTime.Now }); items.Add(new Clothing { Name = "testShirt3", Material = "testMaterial3", Color = "testColor3", DateAdded = DateTime.Now }); var mockRepository = new Mock <IClothingRepository>(); mockRepository.Setup(repository => repository.GetAll()).Returns(items.AsQueryable()); var controller = new WardrobeController(mockRepository.Object); //Act //Assert var result = controller.Index("", null, "", ""); var viewResult = Assert.IsType <ViewResult>(result); var model = Assert.IsAssignableFrom <IEnumerable <Clothing> >(viewResult.ViewData.Model); Assert.Equal(3, model.Count()); var resultFiltering = controller.Index("testColor1", null, "testColor1", ""); var viewResultFiltering = Assert.IsType <ViewResult>(resultFiltering); var modelFiltering = Assert.IsAssignableFrom <IEnumerable <Clothing> >(viewResultFiltering.ViewData.Model); Assert.Equal(2, modelFiltering.Count()); var resultOrdering = controller.Index("", null, "", "name_desc"); var viewResultOrdering = Assert.IsType <ViewResult>(resultOrdering); var modelOrdering = Assert.IsAssignableFrom <IEnumerable <Clothing> >(viewResultOrdering.ViewData.Model); Assert.Equal(items.OrderByDescending(i => i.Name), modelOrdering.ToList()); }