public void GetallAds_Should_Return_Total_Ads_Sorted_By_TypeIndex()
        {
            var fakeAds = this.mocks.AdRepositoryMock.Object.All();
            var mockContext = new Mock<IOnlineShopData>();
            mockContext.Setup(ctx => ctx.Ads.All()).Returns(fakeAds.AsQueryable());

            var adsController = new AdsController(mockContext.Object);
            this.ConfigureController(adsController);
            var response = adsController.All().ExecuteAsync(CancellationToken.None).Result;

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

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

            var orderedFakeAds = fakeAds
                .OrderByDescending(a => a.Type.Index)
                .ThenByDescending(a => a.PostedOn)
                .Select(a => new { a.Id })
                .ToList();

            CollectionAssert.AreEqual(adsResponse, orderedFakeAds);
        }
예제 #2
0
        public async Task AllShouldReturnViewWithCorrectModel()
        {
            // Arrange
            var adService = this.AdServiceMockForAll();

            var controller = new AdsController(adService.Object);

            // Act
            var result = await controller.All();

            // Assert
            result.Should().BeOfType <ViewResult>();

            var adModel = result.As <ViewResult>().Model.As <List <AdListingServiceModel> >();

            adModel.Should().Match(c => c.As <List <AdListingServiceModel> >().Count == 1);
            adModel.First().Should().Match(c => c.As <AdListingServiceModel>().Id == 1);
        }