public async Task DebounceJobAlreadyFinishedTest() { IJobScheduler scheduler = new JobScheduler(_builder); var list = new List <string>(); var job = new DebounceJob(list, "Multiple"); var jobRunnerFirst = scheduler.ScheduleJobInternal(new JobScheduler.JobContainer(job)); await jobRunnerFirst.WaitForJob(); var jobRunnerSecond = scheduler.ScheduleJobInternal(new JobScheduler.JobContainer(job)); await jobRunnerSecond.WaitForJob(); list.Should().OnlyContain(s => s == job.Key).And.HaveCount(2); }
public async Task DebounceJobTest() { IJobScheduler scheduler = new JobScheduler(_builder); var list = new List <string>(); var job = new DebounceJob(list, "Single"); var jobRunnerFirst = scheduler.ScheduleJobInternal(new JobScheduler.JobContainer(job)); await TaskUtils.WaitForDelayOrCancellation(TimeSpan.FromMilliseconds(10), CancellationToken.None); var jobRunnerSecond = scheduler.ScheduleJobInternal(new JobScheduler.JobContainer(job)); await jobRunnerFirst.WaitForJob(); await jobRunnerSecond.WaitForJob(); list.Should().ContainSingle(job.Key); }