public async Task Test_SubtaskSearchQuery_FindByJobId_Should_ReturnMatching() { // arrange var jobA = new JobFaker().Generate("default,InProgress"); var jobB = new JobFaker().Generate("default,InProgress"); var aTasks = new SubtaskFaker().SetJob(jobA).Generate(100); var bTasks = new SubtaskFaker().SetJob(jobB).Generate(23); await using var dbContext = GetDbContext(); await dbContext.Setup(x => x.Jobs, new [] { jobA, jobB }); await dbContext.Setup(x => x.Tasks, aTasks); await dbContext.Setup(x => x.Tasks, bTasks); var search = new SubtaskSearchCriteria() { JobId = jobB.JobId }; var paging = new PagingCriteria() { Page = 1, Size = 25 }; // act var results = await new SubtaskSearchQuery(dbContext).Find(search, paging); // assert results.Should().NotBeNull(); results.Page.Should().Be(1); results.Size.Should().Be(25); results.TotalItems.Should().Be(23); results.TotalPages.Should().Be(1); results.Data.Should().HaveCount(23); results.Data.Should().OnlyContain(x => bTasks.Select(t => t.TaskId).Contains(x.TaskId)); }
public async Task Test_ListTasks_Find_ByName_Should_ReturnPagedList() { // arrange var job = new JobFaker().Generate("default,InProgress"); var fooTasks = new SubtaskFaker().SetJob(job).SetName("foo").Generate(10); var barTasks = new SubtaskFaker().SetJob(job).SetName("bar").Generate(10); await using var context = DbContextFactory.Instance.CreateDbContext <PortAuthorityDbContext>(); await context.Setup(x => x.Jobs, job); await context.Setup(x => x.Tasks, fooTasks); await context.Setup(x => x.Tasks, barTasks); var search = new SubtaskSearchCriteria() { Name = "bar" }; var paging = new PagingCriteria() { Page = 1, Size = 25 }; // act var result = await _service.ListTasks(search, paging); // assert result.Should().NotBeNull(); result.IsOk().Should().BeTrue(); var payload = result.Payload; payload.TotalItems.Should().Be(10); payload.TotalPages.Should().Be(1); payload.Data.Should().HaveCount(10); payload.Data.Should().OnlyContain(x => barTasks.Select(t => t.TaskId).Contains(x.TaskId)); }