Пример #1
0
        public async Task <IResult <PagedResult <JobSearchResult> > > ListJobs(JobSearchCriteria criteria, PagingCriteria paging)
        {
            var query   = new JobSearchQuery(_dbContext);
            var results = await query.Find(criteria, paging);

            return(Result.Ok(results));
        }
Пример #2
0
        public async Task Test_JobSearchQuery_PageForward_Should_ReturnNewPage()
        {
            // arrange
            var jobs = new JobFaker().Generate(100);

            await using var dbContext = GetDbContext();
            await dbContext.Setup(x => x.Jobs, jobs);

            var search = new JobSearchCriteria();

            // act
            var query = new JobSearchQuery(dbContext);
            var page1 = await query.Find(search, new PagingCriteria()
            {
                Page = 1, Size = 5
            });

            var page2 = await query.Find(search, new PagingCriteria()
            {
                Page = 2, Size = 5
            });

            var page3 = await query.Find(search, new PagingCriteria()
            {
                Page = 3, Size = 5
            });

            var page10 = await query.Find(search, new PagingCriteria()
            {
                Page = 10, Size = 5
            });

            // assert
            page1.Should().NotBeNull();
            page1.Page.Should().Be(1);
            page1.TotalItems.Should().Be(100);
            page1.TotalPages.Should().Be(20);
            page1.Data.Should()
            .NotContain(page2.Data)
            .And.NotContain(page3.Data)
            .And.NotContain(page10.Data);

            page2.Should().NotBeNull();
            page2.Page.Should().Be(2);
            page2.TotalItems.Should().Be(100);
            page2.TotalPages.Should().Be(20);
            page2.Data.Should()
            .NotContain(page1.Data)
            .And.NotContain(page3.Data)
            .And.NotContain(page10.Data);

            page3.Should().NotBeNull();
            page3.Page.Should().Be(3);
            page3.TotalItems.Should().Be(100);
            page3.TotalPages.Should().Be(20);
            page3.Data.Should()
            .NotContain(page1.Data)
            .And.NotContain(page2.Data)
            .And.NotContain(page10.Data);

            page10.Should().NotBeNull();
            page10.Page.Should().Be(10);
            page10.TotalItems.Should().Be(100);
            page10.TotalPages.Should().Be(20);
            page10.Data.Should()
            .NotContain(page1.Data)
            .And.NotContain(page2.Data)
            .And.NotContain(page3.Data);
        }