public void GetAllAds_ShouldReturn_AllAds_SortedByIndex() { // Arrange var fakeAds = this.mockContainer.AdRepositoryMock.Object.All(); var fakeUser = this.mockContainer.ApplicationUserRepositoryMock.Object.All().FirstOrDefault(); var mockContext = new Mock <IOnlineShopData>(); mockContext.Setup(r => r.Ads.All()).Returns(fakeAds.AsQueryable()); var mockIdProvider = new Mock <IUserIdProvider>(); if (fakeUser == null) { Assert.Fail("Cannot perform test no users available."); } mockIdProvider.Setup(r => r.GetUserId()).Returns(fakeUser.Id); // Act var adsController = new AdsController(mockContext.Object, mockIdProvider.Object); this.SetupController(adsController); var httpResponse = adsController.GetAllAds().ExecuteAsync(CancellationToken.None).Result; var result = httpResponse.Content.ReadAsAsync <IEnumerable <AllAdsViewModel> >().Result.Select(a => a.Id); var orderedFakeAds = fakeAds.OrderBy(a => a.TypeId).Select(a => a.Id).ToList(); // Assert Assert.AreEqual(HttpStatusCode.OK, httpResponse.StatusCode); CollectionAssert.AreEqual(orderedFakeAds, result.ToList()); }