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 EventOptionsPreviousOccurrenceTest() { var holidays = GetHolidays(); var aEvent = CreateStreetCleaningEvent(); var schedule = new Schedule(aEvent, holidays); Assert.IsNotNull(holidays); Assert.IsNotNull(aEvent); Assert.IsNotNull(schedule); var range = new DateRange() { StartDateTime = new DateTime(2016, 1, 1), EndDateTime = new DateTime(2016, 12, 31) }; foreach (var item in schedule.Occurrences(range)) { System.Diagnostics.Debug.WriteLine(item); } var prev = schedule.PreviousOccurrence(new DateTime(2016, 6, 6)); Assert.IsTrue(prev.Equals(new DateTime(2016, 5, 16))); Assert.IsFalse(prev.Equals(new DateTime(2016, 6, 6))); Assert.IsFalse(prev.Equals(new DateTime(2016, 6, 20))); }
public void RecurringSchedulePreviousOccurrenceTest1() { var aEvent = CreateRecurringEvent(); var schedule = new Schedule(aEvent); Assert.IsNotNull(schedule); var previousOccurrence = schedule.PreviousOccurrence(new DateTime(2013, 1, 2)); Assert.IsFalse(previousOccurrence == new DateTime(2012, 12, 17)); Assert.IsTrue(previousOccurrence == new DateTime(2012, 12, 19)); }
public void StreetCleaningPreviousOccurrenceTest() { var holidays = GetHolidays(); var aEvent = CreateStreetCleaningEvent(); var schedule = new Schedule(aEvent, holidays); Assert.IsNotNull(holidays); Assert.IsNotNull(aEvent); Assert.IsNotNull(schedule); var prev = schedule.PreviousOccurrence(new DateTime(2016, 6, 6)); Assert.IsTrue(prev.Equals(new DateTime(2016, 5, 16))); Assert.IsFalse(prev.Equals(new DateTime(2016, 6, 6))); Assert.IsFalse(prev.Equals(new DateTime(2016, 6, 20))); }
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 MonthTest3() { var aEvent = new Event() { ID = 1, Title = "Event 3", FrequencyTypeOptions = FrequencyTypeEnum.Monthly, DayOfMonth = 3 }; var range = new DateRange() { StartDateTime = new DateTime(2013, 1, 1), EndDateTime = new DateTime(2014, 12, 31) }; var occurringDate = new DateTime(2013, 12, 3); var schedule = new Schedule(aEvent); Assert.IsTrue(schedule.IsOccurring(occurringDate)); var previousOccurrence = schedule.PreviousOccurrence(occurringDate, range); Assert.AreEqual(new DateTime(2013, 11, 3), previousOccurrence.Value); var nextOccurrence = schedule.NextOccurrence(occurringDate, range); Assert.AreEqual(new DateTime(2014, 1, 3), nextOccurrence.Value); var occurrences = schedule.Occurrences(range); Assert.AreEqual(24, occurrences.Count()); Assert.AreEqual(new DateTime(2013, 1, 3), occurrences.First()); Assert.AreEqual(new DateTime(2014, 12, 3), occurrences.Last()); }
public void MonthTest5() { var holidays = new UnionTE(); holidays.Add(new FixedHolidayTE(1, 25)); holidays.Add(new FloatingHolidayTE(3, DayOfWeekEnum.Mon, MonthlyIntervalEnum.First)); var aEvent = new Event() { ID = 1, Title = "Event 5", 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, holidays); Assert.IsTrue(schedule.IsOccurring(occurringDate)); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 3, 4))); 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, 28), nextOccurrence.Value); var occurrences = schedule.Occurrences(range); Assert.AreEqual(28, occurrences.Count()); Assert.AreEqual(new DateTime(2013, 1, 18), occurrences.First()); Assert.AreEqual(new DateTime(2013, 4, 29), occurrences.Last()); }
public void MonthTest4() { var aEvent = new Event() { ID = 1, Title = "Event 4", FrequencyTypeOptions = FrequencyTypeEnum.Monthly, RepeatInterval = 3, DayOfMonth = 30, StartDateTime = new DateTime(2013, 2, 1) }; var range = new DateRange() { StartDateTime = aEvent.StartDateTime.Value, EndDateTime = new DateTime(2014, 12, 31) }; var occurringDate = new DateTime(2014, 2, 28); var schedule = new Schedule(aEvent); Assert.IsTrue(schedule.IsOccurring(occurringDate)); var previousOccurrence = schedule.PreviousOccurrence(occurringDate, range); Assert.AreEqual(new DateTime(2013, 11, 30), previousOccurrence.Value); var nextOccurrence = schedule.NextOccurrence(occurringDate, range); Assert.AreEqual(new DateTime(2014, 5, 30), nextOccurrence.Value); var occurrences = schedule.Occurrences(range); Assert.AreEqual(8, occurrences.Count()); Assert.AreEqual(new DateTime(2013, 2, 28), occurrences.First()); Assert.AreEqual(new DateTime(2014, 11, 30), occurrences.Last()); }
public void MultifunctionTest1() { var aEvent = new Event() { FrequencyTypeOptions = FrequencyTypeEnum.Yearly, RepeatInterval = 2, StartDateTime = new DateTime(2000, 9, 27), // even years only Anniversary = new Anniversary() { Month = 9, Day = 27 } }; // Occurs 2000,2002,2004,2006,2008,2010 aEvent.SetEndDateWithNumberOfOccurrences(6); // Check that the ending date was set correctly. Assert.IsTrue(aEvent.EndDateTime == new DateTime(2010, 9, 27)); // Check that the number of occurrences is retrievable. Assert.IsTrue(aEvent.NumberOfOccurrencesThatWasLastSet == 6); // Exclude 2000,2006,2010. var excludedDates = new List<DateTime> { new DateTime(2000, 9, 27), new DateTime(2005, 9, 27), new DateTime(2005, 9, 28), new DateTime(2006, 9, 27), new DateTime(2010, 9, 27) }; var schedule = new Schedule(aEvent, excludedDates); // Make sure it is not occurring on excluded dates. Assert.IsFalse(schedule.IsOccurring(new DateTime(2000, 9, 27))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2006, 9, 27))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2010, 9, 27))); // Make sure it is not occurring outside the set range. Assert.IsFalse(schedule.IsOccurring(new DateTime(1998, 9, 27))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2012, 9, 27))); // Make sure it is occurring on desired dates. Assert.IsTrue(schedule.IsOccurring(new DateTime(2002, 9, 27))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2004, 9, 27))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2008, 9, 27))); // Check the occurrences function. var during = new DateRange(new DateTime(1995, 1, 1),new DateTime(2015, 1, 1)); var occurrences = schedule.Occurrences(during); Assert.IsTrue(occurrences.Count() == 3); // Check the last occurrence date function. var lastDate = schedule.GetLastOccurrenceDate(); Assert.IsTrue(lastDate == new DateTime(2008, 9, 27)); // Check the next occurrence (date only) function. Assert.IsTrue(schedule.NextOccurrence(new DateTime(1995, 1, 1)) == new DateTime(2002, 9, 27)); Assert.IsTrue(schedule.NextOccurrence(new DateTime(2004, 9, 26)) == new DateTime(2004, 9, 27)); Assert.IsTrue(schedule.NextOccurrence(new DateTime(2004, 9, 27)) == new DateTime(2008, 9, 27)); Assert.IsTrue(schedule.NextOccurrence(new DateTime(2008, 9, 27)) == null); // Check the previous occurrence (date only) function. Assert.IsTrue(schedule.PreviousOccurrence(new DateTime(1995, 1, 1)) == null); Assert.IsTrue(schedule.PreviousOccurrence(new DateTime(2004, 9, 26)) == new DateTime(2002, 9, 27)); Assert.IsTrue(schedule.PreviousOccurrence(new DateTime(2004, 9, 28)) == new DateTime(2004, 9, 27)); Assert.IsTrue(schedule.PreviousOccurrence(new DateTime(2013, 9, 27)) == new DateTime(2008, 9, 27)); // Check the next occurrence ranged function. var range1 = new DateRange(new DateTime(2004, 9, 1), new DateTime(2004, 10, 1)); var range2 = new DateRange(new DateTime(2004, 11, 1), new DateTime(2002, 9, 27)); Assert.IsTrue(schedule.NextOccurrence(new DateTime(1995, 1, 1), range1) == new DateTime(2004, 9, 27)); Assert.IsTrue(schedule.NextOccurrence(new DateTime(1995, 1, 1), range2) == null); // Check the previous occurrence ranged function. Assert.IsTrue(schedule.PreviousOccurrence(new DateTime(2015, 1, 1), range1) == new DateTime(2004, 9, 27)); Assert.IsTrue(schedule.PreviousOccurrence(new DateTime(2015, 1, 1), range2) == null); }