public async Task CanRunJobsWithIntervalBetweenFailingJob() { using (TestSystemClock.Install()) { var time = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); TestSystemClock.SetFrozenTime(time); TestSystemClock.UseFakeSleep(); var job = new FailingJob(Log); var interval = TimeSpan.FromHours(.75); await job.RunContinuousAsync(iterationLimit : 2, interval : interval); Assert.Equal(2, job.RunCount); Assert.Equal(interval, (SystemClock.UtcNow - time)); } }
public void CanSleep() { using (TestSystemClock.Install()) { var sw = Stopwatch.StartNew(); SystemClock.Sleep(250); sw.Stop(); Assert.InRange(sw.ElapsedMilliseconds, 225, 400); TestSystemClock.UseFakeSleep(); var now = SystemClock.UtcNow; sw.Restart(); SystemClock.Sleep(1000); sw.Stop(); var afterSleepNow = SystemClock.UtcNow; Assert.InRange(sw.ElapsedMilliseconds, 0, 30); Assert.True(afterSleepNow > now); Assert.InRange(afterSleepNow.Subtract(now).TotalMilliseconds, 950, 1100); } }