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)); }
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); }