public void IndexSortedByName() { // Create some test data that is not ordered alphabetically var data = new List<Department> { new Department { Name = "CCC" }, new Department { Name = "AAA" }, new Department { Name = "BBB" } }.AsQueryable(); var set = new Mock<DbSet<Department>>(); // Wire up LINQ on mock set to use LINQ to Objects against test data // Includes wire up to make async work (see http://msdn.com/data/dn314429#async for details) set.As<IDbAsyncEnumerable<Department>>() .Setup(m => m.GetAsyncEnumerator()) .Returns(new TestDbAsyncEnumerator<Department>(data.GetEnumerator())); set.As<IQueryable<Department>>() .Setup(m => m.Provider) .Returns(new TestDbAsyncQueryProvider<Department>(data.Provider)); set.As<IQueryable<Department>>().Setup(m => m.Expression).Returns(data.Expression); set.As<IQueryable<Department>>().Setup(m => m.ElementType).Returns(data.ElementType); set.As<IQueryable<Department>>().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator()); // Create a mock context that returns mock set with test data var context = new Mock<AdventureWorksContext>(); context.Setup(c => c.Departments).Returns(set.Object); // Create a controller based on mock context and invoke Index action var controller = new DepartmentsController(context.Object); var result = controller.Index().Result; // Ensure we get a ViewResult back Assert.IsInstanceOfType(result, typeof(ViewResult)); var viewResult = (ViewResult)result; // Ensure model is a collection of all Departments ordered by name Assert.IsInstanceOfType(viewResult.Model, typeof(IEnumerable<Department>)); var departments = (IEnumerable<Department>)viewResult.Model; Assert.AreEqual(3, departments.Count()); Assert.AreEqual("AAA", departments.First().Name, "Results not sorted alphabetically"); Assert.AreEqual("BBB", departments.Skip(1).First().Name, "Results not sorted alphabetically"); Assert.AreEqual("CCC", departments.Skip(2).First().Name, "Results not sorted alphabetically"); }