public void GetNextDate_Xis5_Exact()
        {
            DailyRecurrency daily = new DailyRecurrency(new DateTime(2011, 4, 5), new DateTime(2011, 4, 25), DailyType.EveryXDays, 5);

            Assert.AreEqual(new DateTime(2011, 4, 5), daily.StartDate);
            Assert.AreEqual(new DateTime(2011, 4, 5), daily.GetFirstDate());
            Assert.AreEqual(new DateTime(2011, 4, 10), daily.GetNextDate(new DateTime(2011, 4, 5)));
            Assert.AreEqual(new DateTime(2011, 4, 15), daily.GetNextDate(new DateTime(2011, 4, 10)));
            Assert.AreEqual(new DateTime(2011, 4, 20), daily.GetNextDate(new DateTime(2011, 4, 15)));
            Assert.AreEqual(new DateTime(2011, 4, 25), daily.GetNextDate(new DateTime(2011, 4, 20)));
            Assert.AreEqual(null, daily.GetNextDate(new DateTime(2011, 4, 25)));
        }
        public void GetNextDate_Xis1()
        {
            DailyRecurrency daily = new DailyRecurrency(new DateTime(2011, 4, 1), 5, DailyType.EveryXDays, 1);

            Assert.AreEqual(new DateTime(2011, 4, 1), daily.StartDate);
            Assert.AreEqual(new DateTime(2011, 4, 1), daily.GetFirstDate());
            Assert.AreEqual(new DateTime(2011, 4, 2), daily.GetNextDate(new DateTime(2011, 4, 1)));
            Assert.AreEqual(new DateTime(2011, 4, 3), daily.GetNextDate(new DateTime(2011, 4, 2)));
            Assert.AreEqual(new DateTime(2011, 4, 4), daily.GetNextDate(new DateTime(2011, 4, 3)));
            Assert.AreEqual(new DateTime(2011, 4, 5), daily.GetNextDate(new DateTime(2011, 4, 4)));
            Assert.AreEqual(null, daily.GetNextDate(new DateTime(2011, 4, 5)));
            
        }
        public void GetNextDate_Weeky()
        {
            DailyRecurrency daily = new DailyRecurrency(new DateTime(2011, 4, 1), 5, DailyType.Weekdays);

            Assert.AreEqual(new DateTime(2011, 4, 1), daily.StartDate);        
            Assert.AreEqual(new DateTime(2011, 4, 1), daily.GetFirstDate());    //fri 
            Assert.AreEqual(new DateTime(2011, 4, 4), daily.GetNextDate(new DateTime(2011, 4, 1)));  // fri -> mon
            Assert.AreEqual(new DateTime(2011, 4, 4), daily.GetNextDate(new DateTime(2011, 4, 2)));  // sat -> mon
            Assert.AreEqual(new DateTime(2011, 4, 4), daily.GetNextDate(new DateTime(2011, 4, 3)));  // sun -> mon
            Assert.AreEqual(new DateTime(2011, 4, 5), daily.GetNextDate(new DateTime(2011, 4, 4)));  // mon -> tues
            Assert.AreEqual(new DateTime(2011, 4, 6), daily.GetNextDate(new DateTime(2011, 4, 5)));  // mon -> tues
            Assert.AreEqual(new DateTime(2011, 4, 7), daily.GetNextDate(new DateTime(2011, 4, 6)));  // mon -> tues
            Assert.AreEqual(null, daily.GetNextDate(new DateTime(2011, 4, 7)));
        }
        public void GetFirstDate_WeekDays_IsWeekEnd()
        {
            DailyRecurrency daily = new DailyRecurrency(new DateTime(2011, 5, 14), 5, DailyType.Weekdays); // Mon
            Assert.AreEqual(new DateTime(2011, 5, 16), daily.GetFirstDate());

            daily = new DailyRecurrency(new DateTime(2011, 5, 15), 5, DailyType.Weekdays); // Tues
            Assert.AreEqual(new DateTime(2011, 5, 16), daily.GetFirstDate());

        }
        public void GetFirstDate_WeekDays_IsWeekDay()
        {
            DailyRecurrency daily = new DailyRecurrency(new DateTime(2011, 5, 9), 5, DailyType.Weekdays); // Mon
            Assert.AreEqual(new DateTime(2011, 5, 9), daily.GetFirstDate());

            daily = new DailyRecurrency(new DateTime(2011, 5, 10), 5, DailyType.Weekdays); // Tues
            Assert.AreEqual(new DateTime(2011, 5, 10), daily.GetFirstDate());

            daily = new DailyRecurrency(new DateTime(2011, 5, 11), 5, DailyType.Weekdays); // Wed
            Assert.AreEqual(new DateTime(2011, 5, 11), daily.GetFirstDate());

            daily = new DailyRecurrency(new DateTime(2011, 5, 12), 5, DailyType.Weekdays); // Thurs
            Assert.AreEqual(new DateTime(2011, 5, 12), daily.GetFirstDate());

            daily = new DailyRecurrency(new DateTime(2011, 5, 13), 5, DailyType.Weekdays); // Fri
            Assert.AreEqual(new DateTime(2011, 5, 13), daily.GetFirstDate());
        }