コード例 #1
0
        public void Ctor_Sets_PostPerPage_Property_To_postsPerPage_parameter_AND_BlogPostRepository_Property_To_blogPostRepostitoryParameter()
        {
            const int PostsPerPage = 2;
            var mockedBlogPostRepository = new Mock<IBlogPostRepository>();

            var pager = new BlogPostPager(PostsPerPage, mockedBlogPostRepository.Object);

            pager.PostsPerPage.ShouldEqual(PostsPerPage);
            pager.BlogPostRepository.ShouldEqual(mockedBlogPostRepository.Object);
        }
コード例 #2
0
        public void FetchForPage_GIVEN_BlogPostRepository_Has_2_Posts_And_PostsPerPage_Is_1_WHEN_pageNumber_Is_1_THEN_Returns_1_BlogPost()
        {
            const int PostsPerPage = 1;
            const int NumberOfPosts = 2;
            const int PageNumber = 1;

            var mockedBlogPostRepository = CreateMockedBlogPostRepository(NumberOfPosts);

            var pager = new BlogPostPager(PostsPerPage, mockedBlogPostRepository.Object);
            IEnumerable<BlogPost> posts = pager.FetchForPage(PageNumber);

            posts.Count().ShouldEqual(PostsPerPage);
        }
コード例 #3
0
        public void FetchForPage_GIVEN_BlogPostRepository_Has_2_Posts_And_PostsPerPage_Is_1_WHEN_pageNumber_Is_1_THEN_Calls_BlogPostRepository_GetPosts_With_numberToSkip_As_0_numberToTake_As_1()
        {
            const int PostsPerPage = 1;
            const int NumberOfPosts = 2;
            const int PageNumber = 1;

            const int ExpectedNumSkip = 0;
            const int ExpectedNumTake = 1;

            Expression<Action<IBlogPostRepository>> verifiableAction = r => r.GetPosts(ExpectedNumSkip, ExpectedNumTake, It.IsAny<IEnumerable<string>>());

            var mockedBlogPostRepository = CreateMockedBlogPostRepository(NumberOfPosts);
            mockedBlogPostRepository.Setup(verifiableAction).Verifiable();

            var pager = new BlogPostPager(PostsPerPage, mockedBlogPostRepository.Object);
            pager.FetchForPage(PageNumber);

            mockedBlogPostRepository.Verify(verifiableAction, Times.Once());
        }
コード例 #4
0
        public void PageCount_GIVEN_BlogPostRepository_Has_2_Posts_And_Posts_Per_Page_Is_2_THEN_Returns_1()
        {
            const int PostsPerPage = 2;
            const int NumberOfPosts = 2;

            var mockedBlogPostRepository = CreateMockedBlogPostRepository(NumberOfPosts);

            var pager = new BlogPostPager(PostsPerPage, mockedBlogPostRepository.Object);

            pager.PageCount.ShouldEqual(1);
        }
コード例 #5
0
        public void FetchForPage_WHEN_No_Tags_THEN_Calls_BlogPostRepository_GetPosts_With_EmptyList_Of_Tags()
        {
            IEnumerable<string> tagsPassedToPosts = new string[0];

            var mockedBlogPostRepository = CreateMockedBlogPostRepository(1);
            mockedBlogPostRepository.Setup(r => r.GetPosts(It.IsAny<int>(), It.IsAny<int>(), It.IsAny<IEnumerable<string>>()))
                                    .Callback<int, int, IEnumerable<string>>((skip, take, tags) => tagsPassedToPosts = tags);

            var pager = new BlogPostPager(1, mockedBlogPostRepository.Object);
            IEnumerable<BlogPost> posts = pager.FetchForPage(1, null);

            tagsPassedToPosts.Count().ShouldEqual(0);
        }
コード例 #6
0
        public void FetchForPage_GIVEN_BlogPostRepository_Has_2_Posts_And_PostsPerPage_Is_1_WHEN_pageNumber_Is_3_THEN_Does_Not_Call_BlogPostRepository_GetPosts()
        {
            const int PostsPerPage = 1;
            const int NumberOfPosts = 2;
            const int PageNumber = 3;

            Expression<Action<IBlogPostRepository>> verifiableAction = r => r.GetPosts(It.IsAny<int>(), It.IsAny<int>(), It.IsAny<IEnumerable<string>>());

            var mockedBlogPostRepository = CreateMockedBlogPostRepository(NumberOfPosts);
            mockedBlogPostRepository.Setup(verifiableAction).Verifiable();

            var pager = new BlogPostPager(PostsPerPage, mockedBlogPostRepository.Object);
            pager.FetchForPage(PageNumber);

            mockedBlogPostRepository.Verify(verifiableAction, Times.Never());
        }