public void ShouldNotRunWorkForUnreachableCondition() { var fires = 0; var cron = new CronExpression("* * * 30 2 *"); var interval = new JobInterval(cron, TimeZoneInfo.Utc, () => Task.FromResult(++fires)); interval.Run(); Assert.Equal(0, fires); }
public void ShouldRunWork() { var fires = 0; var cron = new CronExpression("* * * * * *"); var interval = new JobInterval(cron, TimeZoneInfo.Utc, () => Task.FromResult(++fires)); interval.Run(); Task.Delay(2500).GetAwaiter().GetResult(); // Waiting for the job Assert.Equal(2, fires); }
/// <summary> /// Handy method to convert JobInterval enum value to minutes /// </summary> /// <param name="ji"></param> /// <returns></returns> public static int ToMinutes(this JobInterval ji) { switch (ji) { case JobInterval.Daily: return(60 * 24); case JobInterval.Hourly: return(60); case JobInterval.Quarterly: return(15); case JobInterval.HalfHour: return(30); default: throw new ArgumentException("Wrong JobInterval"); } }