public async Task WaitsForScheduleBeforeRunningWrappedJob() { var clock = Clock.DefaultClock; using (var cts = new CancellationTokenSource()) { var job = new FakeJob(cts, clock); var fakeSchedule = new FakeSchedule(2); var scheduledJob = new ScheduledJob <FakeJob>(() => job, fakeSchedule, NullLoggerFactory.Instance, clock); var timeBefore = clock.UtcNow; await Assert.ThrowsAsync <OperationCanceledException>(() => scheduledJob.RunAsync(cts.Token)); Assert.True(job.RunTime.Subtract(timeBefore) >= TimeSpan.FromSeconds(2)); } }