public async Task AllAsyncShould_ReturnsCorrectArticlesWith_DifferentPageIndex(int page)
        {
            //Arrange

            var article       = ArticleCreator.Create(Guid.NewGuid().ToString());
            var secondArticle = ArticleCreator.Create(Guid.NewGuid().ToString());
            var thirdArticle  = ArticleCreator.Create(Guid.NewGuid().ToString());
            var fourthArticle = ArticleCreator.Create(Guid.NewGuid().ToString());

            await this.Db.AddRangeAsync(article, secondArticle, thirdArticle, fourthArticle);

            await this.Db.SaveChangesAsync();

            var service = new BlogArticleService(Db, null, null);

            //Act
            var result = (await service.AllAsync <BlogArticleListingModel>(page)).ToList();

            var expectedCount = this.Db.Articles
                                .Skip((page - 1) * ArticlesPageSize)
                                .Take(ArticlesPageSize)
                                .Count();

            //Assert
            result.Should().AllBeOfType <BlogArticleListingModel>();
            result.Should().HaveCount(expectedCount);
            result.Should().BeInDescendingOrder(x => x.PublishDate);
        }
示例#2
0
        public async Task AllArticlesShouldReturnCorrectResult()
        {
            // Arrange
            TestStartUp startUp = new TestStartUp();

            TestStartUp.InitializeMapper();
            var db = startUp.GetDbContext();

            this.PopulateDb(db);
            var articleService = new BlogArticleService(db);

            // Act
            var result = await articleService.AllAsync();

            // Assert
            result
            .Should()
            .Match(r => r.ElementAt(0).Id == 4 && r.ElementAt(1).Id == 3 && r.ElementAt(2).Id == 2)
            .And
            .HaveCount(3);
        }