public void TestFixedDates()
        {
            var complexDate = new FixedDate()
            {
                Day = 6, Month = 2
            };

            AssertDates(complexDate.NextDates(new DateTime(2011, 2, 6)),
                        new DateTime(2012, 2, 6),
                        new DateTime(2013, 2, 6),
                        new DateTime(2014, 2, 6),
                        new DateTime(2015, 2, 6),
                        new DateTime(2016, 2, 6));
        }
        public void TestFixedDateWithYear()
        {
            var complexDate = new FixedDate()
            {
                Day = 6, Month = 2, Year = 2010
            };

            Assert.AreEqual(
                new DateTime(2010, 2, 6),
                complexDate.NextDate(new DateTime(2009, 2, 6)));

            Assert.AreEqual(
                null,
                complexDate.NextDate(new DateTime(2010, 2, 6)));
        }
        public void TestFixedDateOnLeapYear()
        {
            var complexDate = new FixedDate()
            {
                Day = 29, Month = 2
            };

            AssertDates(complexDate.NextDates(new DateTime(2011, 1, 1)),
                        new DateTime(2012, 2, 29),
                        new DateTime(2016, 2, 29),
                        new DateTime(2020, 2, 29),
                        new DateTime(2024, 2, 29),
                        new DateTime(2028, 2, 29));

            Assert.AreEqual(new DateTime(2016, 2, 29), complexDate.NextDate(new DateTime(2012, 2, 29)));
            Assert.AreEqual(new DateTime(2012, 2, 29), complexDate.NextDate(new DateTime(2011, 3, 1)));
            Assert.AreEqual(new DateTime(2016, 2, 29), complexDate.NextDate(new DateTime(2012, 3, 1)));
        }