public void GetNextOccurrence_NowEqualToNext_ReturnsCorrectValue() { var scheduleData = new List <TimeSpan> { new TimeSpan(8, 0, 0), new TimeSpan(11, 30, 0), new TimeSpan(15, 0, 0), new TimeSpan(19, 15, 0) }; var schedule = new DailySchedule(scheduleData.ToArray()); var now = schedule.GetNextOccurrence(DateTime.Now); var next = schedule.GetNextOccurrence(now); Assert.True(next > now); }
public void Constructor_TimeStrings() { DailySchedule schedule = new DailySchedule("08:30:00", "12:00:00", "15:00:00"); DateTime now = new DateTime(2015, 5, 23, 7, 30, 0); DateTime nextOccurrence = schedule.GetNextOccurrence(now); Assert.Equal("08:30:00", nextOccurrence.TimeOfDay.ToString()); now = nextOccurrence + TimeSpan.FromSeconds(1); nextOccurrence = schedule.GetNextOccurrence(now); Assert.Equal("12:00:00", nextOccurrence.TimeOfDay.ToString()); now = nextOccurrence + TimeSpan.FromSeconds(1); nextOccurrence = schedule.GetNextOccurrence(now); Assert.Equal("15:00:00", nextOccurrence.TimeOfDay.ToString()); now = nextOccurrence + TimeSpan.FromSeconds(1); }
public void OneTimePerDay() { // previously we had a bug in calculating the next occurrence // when the current time was greater than the single daily time. DailySchedule schedule = new DailySchedule("2:00:00"); DateTime now = new DateTime(2015, 9, 15, 21, 57, 40); DateTime nextOccurrence = schedule.GetNextOccurrence(now); TimeSpan nextInterval = nextOccurrence - now; Assert.Equal(14540000, nextInterval.TotalMilliseconds); }
public void Constructor_TimeSpans() { DailySchedule schedule = new DailySchedule( new TimeSpan(8, 30, 0), new TimeSpan(15, 0, 0), // verify the schedule self orders new TimeSpan(12, 00, 0)); DateTime now = new DateTime(2015, 5, 23, 7, 30, 0); DateTime nextOccurrence = schedule.GetNextOccurrence(now); Assert.Equal("08:30:00", nextOccurrence.TimeOfDay.ToString()); now = nextOccurrence + TimeSpan.FromSeconds(1); nextOccurrence = schedule.GetNextOccurrence(now); Assert.Equal("12:00:00", nextOccurrence.TimeOfDay.ToString()); now = nextOccurrence + TimeSpan.FromSeconds(1); nextOccurrence = schedule.GetNextOccurrence(now); Assert.Equal("15:00:00", nextOccurrence.TimeOfDay.ToString()); now = nextOccurrence + TimeSpan.FromSeconds(1); }
private void VerifySchedule(List <TimeSpan> scheduleData, DateTime now) { DailySchedule schedule = new DailySchedule(scheduleData.ToArray()); for (int i = 0; i < 10; i++) { for (int j = 0; j < scheduleData.Count; j++) { DateTime nextOccurrence = schedule.GetNextOccurrence(now); Assert.Equal(scheduleData[j], nextOccurrence.TimeOfDay); now = nextOccurrence + TimeSpan.FromSeconds(1); } } }