public void YearTest2() { var aEvent = new Event() { ID = 1, Title = "Event 2", FrequencyTypeOptions = FrequencyTypeEnum.Yearly, Anniversary = new Anniversary() { Month = 9, Day = 27 } }; var schedule = new Schedule(aEvent); Assert.IsTrue(schedule.IsOccurring(new DateTime(2014, 9, 27))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2015, 9, 27))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2016, 9, 27))); var range = new DateRange() { StartDateTime = new DateTime(2012, 1, 1), EndDateTime = new DateTime(2016, 12, 31) }; var occurrences = schedule.Occurrences(range); Assert.AreEqual(5, occurrences.Count()); Assert.AreEqual(new DateTime(2012, 9, 27), occurrences.First()); Assert.AreEqual(new DateTime(2016, 9, 27), occurrences.Last()); }
public void WeeklyEventOnEveryMonWedFriTest() { var aEvent = new Event() { ID = 1, Title = "Weekly on Monday, Wednesday, Friday", Frequency = 64, // weekly on Monday, Wednesday, Friday DaysOfWeek = 42, // every Mon, Wed and Fri StartDateTime = new DateTime(2013, 8, 2) }; var schedule = new Schedule(aEvent); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 8, 2))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 3))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 4))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 8, 5))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 6))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 8, 7))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 8))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 8, 9))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 10))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 11))); }
public void RecurringScheduleIsOccurringTest1() { var aEvent = CreateRecurringEvent(); var schedule = new Schedule(aEvent); Assert.IsNotNull(schedule); Assert.IsTrue(schedule.IsOccurring(new DateTime(2012, 10, 1))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 1, 18))); }
public void EventOptionsIndependenceDayTest() { var holidays = GetHolidays(); var aEvent = CreateStreetCleaningEvent(); var schedule = new Schedule(aEvent, holidays); Assert.IsNotNull(holidays); Assert.IsNotNull(aEvent); Assert.IsNotNull(schedule); Assert.IsFalse(schedule.IsOccurring(new DateTime(2012, 7, 4))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2016, 7, 4))); }
public void SimpleScheduleIsOccurringTest2() { var aEvent = CreateTodayEvent(); var schedule = new Schedule(aEvent); Assert.IsNotNull(schedule); Assert.IsFalse(schedule.IsOccurring(DateTime.Today.AddDays(1))); }
public void EventOptionsLaborDayTest() { var holidays = GetHolidays(); var aEvent = CreateStreetCleaningEvent(); var schedule = new Schedule(aEvent, holidays); Assert.IsNotNull(holidays); Assert.IsNotNull(aEvent); Assert.IsNotNull(schedule); // Labor Day Assert.IsFalse(schedule.IsOccurring(new DateTime(2012, 9, 3))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 9, 2))); // Third Monday in Sep Assert.IsTrue(schedule.IsOccurring(new DateTime(2014, 9, 15))); }
public void AnniversaryTest2() { var anniversary = new Anniversary() { Day = 5, Month = 6 }; var aEvent = new Event() { ID = 1, Title = "Give Flowers to Wife", Frequency = 16, // yearly Anniversary = anniversary }; var schedule = new Schedule(aEvent); Assert.IsFalse(schedule.IsOccurring(new DateTime(2009, 6, 4))); var range = new DateRange() { StartDateTime = new DateTime(2010, 1, 1), EndDateTime = new DateTime(2020, 12, 31) }; var occurrences = schedule.Occurrences(range).ToList(); Assert.IsTrue(occurrences.Count.Equals(11)); }
public void MonthTest1() { var aEvent = new Event() { ID = 1, Title = "Event 1", FrequencyTypeOptions = FrequencyTypeEnum.Monthly, MonthlyIntervalOptions = MonthlyIntervalEnum.EveryWeek, DaysOfWeekOptions = DayOfWeekEnum.Mon | DayOfWeekEnum.Fri }; var range = new DateRange() { StartDateTime = new DateTime(2013, 1, 15), EndDateTime = new DateTime(2013, 4, 30) }; var occurringDate = new DateTime(2013, 1, 21); var schedule = new Schedule(aEvent); Assert.IsTrue(schedule.IsOccurring(occurringDate)); var previousOccurrence = schedule.PreviousOccurrence(occurringDate, range); Assert.AreEqual(new DateTime(2013, 1, 18), previousOccurrence.Value); var nextOccurrence = schedule.NextOccurrence(occurringDate, range); Assert.AreEqual(new DateTime(2013, 1, 25), nextOccurrence.Value); var occurrences = schedule.Occurrences(range); Assert.AreEqual(30, occurrences.Count()); Assert.AreEqual(new DateTime(2013, 1, 18), occurrences.First()); Assert.AreEqual(new DateTime(2013, 4, 29), occurrences.Last()); }
public void SimpleScheduleIsOccurringTest1() { var aEvent = CreateTodayEvent(); var schedule = new Schedule(aEvent); Assert.IsNotNull(schedule); Assert.IsTrue(schedule.IsOccurring(DateTime.Today)); }
public void DailyEventTest1() { var aEvent = new Event() { ID = 1, Title = "Event 1", Frequency = 1, // daily MonthlyInterval = 0, // not applicable DaysOfWeek = 127 // every day of week }; var schedule = new Schedule(aEvent); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 2, 10))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 4, 29))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 11, 17))); }
public void DailyEventTest3() { var aEvent = new Event() { ID = 1, Title = "Event 3", FrequencyTypeOptions = FrequencyTypeEnum.Daily, RepeatInterval = 4, StartDateTime = new DateTime(2013, 1, 3) }; var schedule = new Schedule(aEvent); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 1, 7))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 1, 12))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 2, 4))); }
public void DailyEventTest2() { var aEvent = new Event() { ID = 1, Title = "Event 2", RangeInYear = null, Frequency = 1, // daily MonthlyInterval = 0, // not applicable DaysOfWeek = 16 // Thursday }; var schedule = new Schedule(aEvent); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 2, 14))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 4, 25))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 11, 7))); }
public void YearTest1() { var aEvent = new Event() { ID = 1, Title = "Event 1", FrequencyTypeOptions = FrequencyTypeEnum.Yearly, Anniversary = new Anniversary() { Month = 9, Day = 27 } }; var schedule = new Schedule(aEvent); Assert.IsTrue(schedule.IsOccurring(new DateTime(2014, 9, 27))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2015, 9, 27))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2016, 9, 27))); }
public void SimpleExcludedDayTest2() { // first Mon of Sep var excludedDay = new DateTime(2012, 9, 3); var aEvent = CreateRecurringEvent(); var excludedDates = new List<DateTime>() { excludedDay }; var schedule = new Schedule(aEvent, excludedDates); Assert.IsNotNull(schedule); Assert.IsFalse(schedule.IsOccurring(excludedDay)); }
public void FineGrainedRangeInYearTest() { var holidays = GetHolidays(); var aEvent = CreateFineGrainedStreetCleaningEvent(); var schedule = new Schedule(aEvent, holidays); Assert.IsNotNull(holidays); Assert.IsNotNull(aEvent); Assert.IsNotNull(schedule); Assert.IsTrue(schedule.IsOccurring(new DateTime(2016, 6, 20))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2016, 5, 16))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2016, 6, 6))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2018, 10, 15))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2018, 11, 5))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2018, 1, 1))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2018, 2, 5))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2018, 3, 19))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2014, 11, 1))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2014, 12, 1))); }
public void OneTimeOnlyTest1() { var laborDay = new DateTime(2012, 9, 1); var aEvent = new Event() { ID = 1, Title = "Labor Day Extravaganza", Frequency = 0, // one-time only OneTimeOnlyEventDate = laborDay, MonthlyInterval = 0, // not applicable DaysOfWeek = 0 // not applicable }; var schedule = new Schedule(aEvent); Assert.IsTrue(schedule.IsOccurring(laborDay)); }
public void AnniversaryTest1() { var anniversary = new Anniversary() { Day = 1, Month = 8 }; var aEvent = new Event() { ID = 1, Title = "Daughter's Birthday", Frequency = 16, // yearly Anniversary = anniversary }; var schedule = new Schedule(aEvent); Assert.IsTrue(schedule.IsOccurring(new DateTime(2008, 8, 1))); }
public void EventOptionsIsOccurringTest() { var holidays = GetHolidays(); var aEvent = CreateStreetCleaningEvent(); var schedule = new Schedule(aEvent, holidays); Assert.IsNotNull(holidays); Assert.IsNotNull(aEvent); Assert.IsNotNull(schedule); Assert.IsTrue(schedule.IsOccurring(new DateTime(2016, 6, 20))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2016, 5, 16))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2016, 6, 6))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2018, 1, 1))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2018, 2, 5))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2018, 3, 19))); }
public void WeeklyEventTest2() { var aEvent = new Event() { ID = 1, Title = "Every Mon Wed Fri", Frequency = 2, // weekly MonthlyInterval = 0, // not applicable DaysOfWeek = 42 // every Mon, Wed and Fri }; var schedule = new Schedule(aEvent); Assert.IsTrue(schedule.IsOccurring(new DateTime(2016, 2, 8))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2015, 11, 25))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2014, 6, 16))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2012, 10, 12))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2012, 8, 9))); // Thu Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 2, 5))); // Tue Assert.IsFalse(schedule.IsOccurring(new DateTime(2014, 7, 5))); // Sat }
public void MonthTest2() { var aEvent = new Event() { ID = 1, Title = "Event 2", FrequencyTypeOptions = FrequencyTypeEnum.Monthly, RepeatInterval = 2, MonthlyIntervalOptions = MonthlyIntervalEnum.Last, DaysOfWeekOptions = DayOfWeekEnum.Mon | DayOfWeekEnum.Fri, StartDateTime = new DateTime(2013, 1, 15) }; var range = new DateRange() { StartDateTime = aEvent.StartDateTime.Value, EndDateTime = new DateTime(2013, 4, 30) }; var nonOccurringDate = new DateTime(2013, 1, 29); var schedule = new Schedule(aEvent); Assert.IsFalse(schedule.IsOccurring(nonOccurringDate)); var previousOccurrence = schedule.PreviousOccurrence(nonOccurringDate, range); Assert.AreEqual(new DateTime(2013, 1, 28), previousOccurrence.Value); var nextOccurrence = schedule.NextOccurrence(nonOccurringDate, range); Assert.AreEqual(new DateTime(2013, 3, 25), nextOccurrence.Value); var occurrences = schedule.Occurrences(range); Assert.AreEqual(4, occurrences.Count()); Assert.AreEqual(new DateTime(2013, 1, 25), occurrences.First()); Assert.AreEqual(new DateTime(2013, 3, 29), occurrences.Last()); }
public void WeeklyEventTest3() { var aEvent = new Event() { ID = 1, Title = "Every 2nd week on Mon Wed Fri", Frequency = 2, // weekly MonthlyInterval = 0, // not applicable DaysOfWeek = 44, // every Tue, Wed and Fri WeeklyInterval = 2, // every 2nd week FirstDateTime = new DateTime(2013, 1, 1) // start date on a Tue }; var schedule = new Schedule(aEvent); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 1, 1))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 1, 15))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 2, 12))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 12, 17))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2014, 1, 14))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 1, 8))); // 1st week Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 1, 14))); // 2nd week but Mon }
public void WeeklyEventTest1() { var aEvent = new Event() { ID = 1, Title = "Every Mon and Wed", Frequency = 2, // weekly MonthlyInterval = 0, // not applicable DaysOfWeek = 10 // every Mon and Wed }; var schedule = new Schedule(aEvent); // NOTE: If daily then date range doesn't matter Assert.IsTrue(schedule.IsOccurring(new DateTime(2016, 2, 8))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2015, 11, 25))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2014, 6, 16))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2012, 8, 9))); // Thu Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 2, 5))); // Tue Assert.IsFalse(schedule.IsOccurring(new DateTime(2014, 7, 5))); // Sat }
public void WeeklyEventOnEveryTueThuTest() { var aEvent = new Event() { ID = 1, Title = "Weekly on Tuesday and Thursday", Frequency = 128, // weekly on Tuesday and Thursday DaysOfWeek = 20, // every Tuesday and Thursday FirstDateTime = new DateTime(2013, 8, 1) }; var schedule = new Schedule(aEvent); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 8, 1))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 2))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 3))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 4))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 5))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 8, 6))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 7))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 8, 8))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 9))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 10))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 11))); }
public void DailyEventTest5() { var aEvent = new Event() { ID = 5, Title = "Event 5", FrequencyTypeOptions = FrequencyTypeEnum.Daily, RepeatInterval = 1, StartDateTime = new DateTime(2013, 8, 8) }; var schedule = new Schedule(aEvent); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 5))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 6))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 7))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 8, 8))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 8, 9))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 8, 10))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 8, 11))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 8, 12))); }
public void DailyEventTest4() { var holidays = new UnionTE(); holidays.Add(new FixedHolidayTE(2, 4)); var aEvent = new Event() { ID = 1, Title = "Event 4", FrequencyTypeOptions = FrequencyTypeEnum.Daily, RepeatInterval = 4, StartDateTime = new DateTime(2013, 1, 3) }; var schedule = new Schedule(aEvent, holidays); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 1, 7))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 1, 13))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 2, 4))); }
public void YearTest4() { var aEvent = new Event() { ID = 1, Title = "Event 4", FrequencyTypeOptions = FrequencyTypeEnum.Yearly, StartDateTime = new DateTime(2013, 9, 28), RepeatInterval = 2, Anniversary = new Anniversary() { Month = 9, Day = 27 } }; var schedule = new Schedule(aEvent); Assert.IsTrue(schedule.IsOccurring(new DateTime(2014, 9, 27))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2015, 9, 27))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2016, 9, 27))); }
public void WeeklyEventWeeklyOnWeekdaysTest2() { var aEvent = new Event() { ID = 1, Title = "Every weekday (Monday to Friday)", Frequency = 32, // every weekday (Monday to Friday) DaysOfWeek = 62, // every Mon, Tue, Wed, Thu and Fri, WeeklyInterval = 1, FirstDateTime = new DateTime(2013, 8, 5) }; var schedule = new Schedule(aEvent); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 7, 29))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 7, 30))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 7, 31))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 1))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 2))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 3))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 4))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 8, 5))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 8, 6))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 8, 7))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 8, 8))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 8, 9))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 10))); }
public void QuarterlyEventTest2() { var aEvent = new Event() { ID = 1, Title = "Quarterly, Third Quarter, Second Month, Second Week, Wednesday", Frequency = 8, // quarterly QuarterInterval = 4, // third quarter QuarterlyInterval = 2, // 2nd month of quarter MonthlyInterval = 2, // 2nd week of the month DaysOfWeek = 8 // Wednesday }; var schedule = new Schedule(aEvent); // check 2014: expect Aug. 13th 2014 (Wed) Assert.IsTrue(schedule.IsOccurring(new DateTime(2014, 8, 13)), "expect match for Aug. 6th"); Assert.IsFalse(schedule.IsOccurring(new DateTime(2014, 8, 20)), "wrong match - 1W too late"); Assert.IsFalse(schedule.IsOccurring(new DateTime(2014, 7, 6)), "wrong match - 1W too early"); Assert.IsTrue(schedule.IsOccurring(new DateTime(2015, 8, 12)), "expect match for Aug. 5th"); Assert.IsTrue(schedule.IsOccurring(new DateTime(2016, 8, 10)), "expect match for Aug. 10th"); }
public void QuarterlyEventTest1() { var aEvent = new Event() { ID = 1, Title = "Quarterly, First Quarter, First Month, Last Week, Friday", Frequency = 8, // quarterly QuarterInterval = 1, // first quarter QuarterlyInterval = 1, // first month of quarter MonthlyInterval = 16, // last week of the month DaysOfWeek = 32 // Friday }; var schedule = new Schedule(aEvent); // check 2014: expect Jan 31st 2014 (Friday) Assert.IsTrue(schedule.IsOccurring(new DateTime(2014, 1, 31)), "expect match for Jan. 31st"); Assert.IsFalse(schedule.IsOccurring(new DateTime(2014, 1, 24)), "wrong match - 1W too early"); // Fri before Assert.IsFalse(schedule.IsOccurring(new DateTime(2014, 2, 7)), "wrong match - 1W too late"); // Fri after Assert.IsTrue(schedule.IsOccurring(new DateTime(2015, 1, 30)), "expect match for Jan. 30th"); Assert.IsTrue(schedule.IsOccurring(new DateTime(2016, 1, 29)), "expect match for Jan. 29th"); }
public void WeeklyEventFirstDayOfWeekMonday() { var aEvent = new Event() { ID = 1, Title = "Every 2nd week. First day of week Monday", Frequency = 2, // Weekly DaysOfWeek = 127, // Every day RepeatInterval = 2, FirstDayOfWeek = Enums.DayOfWeekEnum.Mon, StartDateTime = new DateTime(2015, 1, 1) }; var schedule = new Schedule(aEvent); Assert.IsTrue(schedule.IsOccurring(new DateTime(2015, 1, 1))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2015, 1, 2))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2015, 1, 3))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2015, 1, 4))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2015, 1, 5))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2015, 1, 6))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2015, 1, 7))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2015, 1, 8))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2015, 1, 9))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2015, 1, 10))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2015, 1, 11))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2015, 1, 12))); }