public void Test_GetAllAccessGroups_ReturnsAllAccessGroups() { //Arrange var expected = new List <UserAccessGroup> { new UserAccessGroup { UserAccessGroupID = 1, GroupName = "Test" }, new UserAccessGroup { UserAccessGroupID = 2, GroupName = "Test test" } }; var testData = new List <UserAccessGroup> { new UserAccessGroup { UserAccessGroupID = 1, GroupName = "Test" }, new UserAccessGroup { UserAccessGroupID = 2, GroupName = "Test test" } }.AsQueryable(); var mockDbSet = new Mock <DbSet <UserAccessGroup> >(); mockDbSet.As <IQueryable <UserAccessGroup> >().Setup(m => m.Provider).Returns(testData.Provider); mockDbSet.As <IQueryable <UserAccessGroup> >().Setup(m => m.Expression).Returns(testData.Expression); mockDbSet.As <IQueryable <UserAccessGroup> >().Setup(m => m.ElementType).Returns(testData.ElementType); mockDbSet.As <IQueryable <UserAccessGroup> >().Setup(m => m.GetEnumerator()).Returns(testData.GetEnumerator()); var mockContext = new Mock <SystemAdminContext>(); mockContext.Setup(x => x.AccessGroups).Returns(mockDbSet.Object); var classUnderTest = new CRUD_Operations(mockContext.Object); //Act var actual = classUnderTest.GetAllAccessGroups(); //Assert Assert.AreEqual(expected.Count, actual.Count); Assert.AreEqual(expected[0].UserAccessGroupID, actual[0].UserAccessGroupID); Assert.AreEqual(expected[1].UserAccessGroupID, actual[1].UserAccessGroupID); Assert.AreEqual(expected[0].GroupName, actual[0].GroupName); Assert.AreEqual(expected[1].GroupName, actual[1].GroupName); }