public void GetNext_EverydayEveryWeek() { WeeklyRecurrency weekly = new WeeklyRecurrency(new DateTime(2011, 4, 1), 5, 1); weekly.Days = WeeklyRecurrency.EveryDay; Assert.AreEqual(new DateTime(2011, 4, 1), weekly.StartDate); Assert.AreEqual(new DateTime(2011, 4, 1), weekly.GetFirstDate()); Assert.AreEqual(new DateTime(2011, 4, 2), weekly.GetNextDate(new DateTime(2011, 4, 1))); Assert.AreEqual(new DateTime(2011, 4, 3), weekly.GetNextDate(new DateTime(2011, 4, 2))); Assert.AreEqual(new DateTime(2011, 4, 4), weekly.GetNextDate(new DateTime(2011, 4, 3))); Assert.AreEqual(new DateTime(2011, 4, 5), weekly.GetNextDate(new DateTime(2011, 4, 4))); Assert.IsNull(weekly.GetNextDate(new DateTime(2011, 4, 5))); }
public void GetNext_WeekendsEvery2ndWeek() { WeeklyRecurrency weekly = new WeeklyRecurrency(new DateTime(2011, 4, 1), 5, 2); weekly.Days = WeeklyRecurrency.WeekEnd; // April 2011 // M T W T F S S // 1 2 3 << 2,3 // 4 5 6 7 8 9 10 // 11 12 13 14 15 16 17 << 16, 17 // 18 19 20 21 22 23 24 // 25 26 27 28 29 30 << 30 Assert.AreEqual(new DateTime(2011, 4, 1), weekly.StartDate); Assert.AreEqual(new DateTime(2011, 4, 02), weekly.GetFirstDate()); Assert.AreEqual(new DateTime(2011, 4, 02), weekly.GetNextDate(new DateTime(2011, 4, 1))); // Fri -> Sat d1 Assert.AreEqual(new DateTime(2011, 4, 03), weekly.GetNextDate(new DateTime(2011, 4, 2))); // Sat -> Sun d2 Assert.AreEqual(new DateTime(2011, 4, 16), weekly.GetNextDate(new DateTime(2011, 4, 3))); // Sun -> Sat 2 weeks ahead d3 Assert.AreEqual(new DateTime(2011, 4, 16), weekly.GetNextDate(new DateTime(2011, 4, 10))); // Sun -> Sat 1 weeks ahead Assert.AreEqual(new DateTime(2011, 4, 17), weekly.GetNextDate(new DateTime(2011, 4, 16))); // Sun -> Sat d4 Assert.AreEqual(new DateTime(2011, 4, 30), weekly.GetNextDate(new DateTime(2011, 4, 17))); // Sun -> Sat 2 weeks ahead d5 Assert.AreEqual(new DateTime(2011, 4, 30), weekly.GetNextDate(new DateTime(2011, 4, 22))); Assert.IsNull(weekly.GetNextDate(new DateTime(2011, 4, 30))); }
public void GetNext_Every2ndSunday() { WeeklyRecurrency weekly = new WeeklyRecurrency(new DateTime(2011, 4, 3), new DateTime(2011, 5, 1), 2, sunday: true); // April 2011 // M T W T F S S // 1 2 3 << 3 // 4 5 6 7 8 9 10 // 11 12 13 14 15 16 17 << 17 // 18 19 20 21 22 23 24 // 25 26 27 28 29 30 << 1 Assert.AreEqual(new DateTime(2011, 4, 3), weekly.StartDate); Assert.AreEqual(new DateTime(2011, 4, 3), weekly.GetFirstDate()); // d1 Assert.AreEqual(new DateTime(2011, 4, 17), weekly.GetNextDate(new DateTime(2011, 4, 4))); // d2 Assert.AreEqual(new DateTime(2011, 4, 17), weekly.GetNextDate(new DateTime(2011, 4, 10))); Assert.AreEqual(new DateTime(2011, 4, 17), weekly.GetNextDate(new DateTime(2011, 4, 16))); Assert.AreEqual(new DateTime(2011, 5, 01), weekly.GetNextDate(new DateTime(2011, 4, 17))); // d3 Assert.AreEqual(new DateTime(2011, 5, 01), weekly.GetNextDate(new DateTime(2011, 4, 18))); Assert.AreEqual(new DateTime(2011, 5, 01), weekly.GetNextDate(new DateTime(2011, 4, 30))); Assert.IsNull(weekly.GetNextDate(new DateTime(2011, 5, 1))); }