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());
        }