예제 #1
0
        public void TestGetAdsShouldReturnAllAdsSortedByType()
        {
            var mockedContext = new Mock <IOnlineShopData>();

            mockedContext.Setup(c => c.Ads).Returns(this.mock.AdRepositoryMock.Object);
            var adsController = new AdsController(mockedContext.Object);

            adsController.Request       = new HttpRequestMessage();
            adsController.Configuration = new HttpConfiguration();
            var response = adsController.GetAds().ExecuteAsync(CancellationToken.None).Result;

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);

            var responseAds = response.Content
                              .ReadAsAsync <IEnumerable <AdViewModel> >()
                              .Result
                              .Select(a => a.Id)
                              .ToList();
            var fakeAds = this.mock.AdRepositoryMock.Object.All()
                          .Select(AdViewModel.Create)
                          .OrderBy(a => a.Type)
                          .ThenBy(a => a.PostDateTime)
                          .Select(a => a.Id)
                          .ToList();

            CollectionAssert.AreEqual(fakeAds, responseAds);
        }
예제 #2
0
        public void GetAllAds_Should_Return_Total_Ads_Sorted_By_TypeIndex()
        {
            // Arrange
            var fakeAds = this.mocks.AdRepositoryMock.Object.All();

            var mockContext        = new Mock <IOnlineShopData>();
            var mockUserIdProvider = new Mock <IUserIdProvider>();

            mockContext.Setup(c => c.Ads.All())
            .Returns(fakeAds);

            var adsController = new AdsController(mockContext.Object, mockUserIdProvider.Object);

            this.SetupController(adsController);

            // Act
            var response = adsController.GetAds()
                           .ExecuteAsync(CancellationToken.None).Result;

            // Assert
            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);

            var adsResponse = response.Content
                              .ReadAsAsync <IEnumerable <AdViewModel> >()
                              .Result.Select(a => a.Id)
                              .ToList();

            var orderedFakeAds = fakeAds
                                 .OrderByDescending(a => a.Type.Index)
                                 .ThenBy(a => a.PostedOn)
                                 .Select(a => a.Id)
                                 .ToList();

            CollectionAssert.AreEqual(orderedFakeAds, adsResponse);
        }
예제 #3
0
        public void GetAllAds_Should_Return_Total_Ads_Sorted_By_TypeIndex()
        {
            var fakeAds = this.mocks.AdRepositoryMock.Object.All();

            var mockContext = new Mock<IOnlineShopData>();
            var mockUserIdProvider = new Mock<IUserIdProvider>();
            mockContext.Setup(c => c.Ads.All())
                .Returns(fakeAds);
            
            var adsController = new AdsController(mockContext.Object, mockUserIdProvider.Object);
            this.SetupController(adsController);

            var response = adsController.GetAds()
                .ExecuteAsync(CancellationToken.None).Result;

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);

            var adsResponse = response.Content.ReadAsAsync<IEnumerable<AdViewModel>>()
                .Result.Select(a => a.Id)
                .ToList();

            var orderedFakeAds = fakeAds
                .OrderBy(a => a.Type.Index)
                .ThenBy(a => a.PostedOn)
                .Select(a => a.Id)
                .ToList();

            CollectionAssert.AreEqual(orderedFakeAds, adsResponse);
        }
예제 #4
0
        public void GetAllAds_Should_Return_Total_Ads_Sorted_By_TypeIndex()
        {
            //Arrange
            var fakeAds = this.mocks.AdRepositoryMock.Object.All();

            var mockContext        = new Mock <IOnlineShopData>();
            var mockUserIdProvider = new Mock <IUserIdProvider>();

            mockContext.Setup(c => c.Ads.All())
            .Returns(fakeAds);

            var adsController = new AdsController(mockContext.Object,
                                                  mockUserIdProvider.Object);

            this.SetupController(adsController);

            //Act- invoke the GetAllAds() method from the controller.
            var response = adsController.GetAds()
                           .ExecuteAsync(CancellationToken.None).Result;

            //Assert that the response status code is 200 OK
            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);

            //Deserialize the response data with ReadAsAsync<T>(). Select only the IDs.
            var adsResponse = response.Content.ReadAsAsync <IEnumerable <AdViewModel> >()
                              .Result.Select(a => a.Id)
                              .ToList();

            //Order the fake ads collection just like the controller does the ordering.
            //Select only the IDs.
            var orderedFakeAds = fakeAds
                                 .OrderBy(a => a.Type.Index)
                                 .ThenBy(a => a.PostedOn)
                                 .Select(a => a.Id)
                                 .ToList();

            //Assert that the two collections have the same elements
            CollectionAssert.AreEqual(orderedFakeAds, adsResponse);
        }