예제 #1
0
        public void GetNextDateAfter_ReturnsNextDayInNextWeek()
        {
            // Arrange.
            var target = new WeeklyPattern { Saturday = true, Sunday = true };

            var afterDate = new DateTime(2013, 1, 19); // Saturday

            // Act.
            var result = target.GetNextDateAfter(afterDate);

            // Assert.
            var expected = new DateTime(2013, 1, 20); // Sunday
            Assert.AreEqual(expected, result);

            // Arrange.
            target = new WeeklyPattern { ReoccurEveryNWeek = 2, Sunday = true, Saturday = true };

            afterDate = new DateTime(2013, 1, 19); // Saturday

            // Act.
            result = target.GetNextDateAfter(afterDate);

            // Assert.
            expected = new DateTime(2013, 1, 27); // Sunday
            Assert.AreEqual(expected, result);

            // Arrange.
            target = new WeeklyPattern { ReoccurEveryNWeek = 3, Sunday = true };

            afterDate = new DateTime(2013, 1, 20); // Sunday

            // Act.
            result = target.GetNextDateAfter(afterDate);

            // Assert.
            expected = new DateTime(2013, 2, 10); // Sunday
            Assert.AreEqual(expected, result);
        }
예제 #2
0
        public void WhenNoDaysAreSelected_GetNextDateAfter_ReturnsNull()
        {
            // Arrange.
            var target = new WeeklyPattern();

            // Act.
            var result = target.GetNextDateAfter(new DateTime(2013, 1, 1));

            // Assert.
            Assert.IsNull(result);
        }
예제 #3
0
        public void GetNextDateAfter_ReturnsNextDayInCurrentWeek()
        {
            // Arrange.
            var target = new WeeklyPattern { ReoccurEveryNWeek = 2, Sunday = true, Tuesday = true };
            var afterDate = new DateTime(2013, 1, 20); // Sunday

            // Act.
            var result = target.GetNextDateAfter(afterDate);

            // Assert.
            var expected = new DateTime(2013, 1, 22); // Tuesday
            Assert.AreEqual(expected, result);

            // Arrange.
            target = new WeeklyPattern { ReoccurEveryNWeek = 2, Saturday = true, };

            afterDate = new DateTime(2013, 1, 18); // Friday.

            // Act.
            result = target.GetNextDateAfter(afterDate);

            // Assert.
            expected = new DateTime(2013, 1, 19); // Saturday
            Assert.AreEqual(expected, result);

            // Arrange.
            target = new WeeklyPattern { ReoccurEveryNWeek = 2, Sunday = true, Monday = true, Tuesday = true, Wednesday = true, Thursday = true, Friday = true, Saturday = true };

            afterDate = new DateTime(2013, 1, 18); // Friday.

            // Act.
            result = target.GetNextDateAfter(afterDate);

            // Assert.
            expected = new DateTime(2013, 1, 19); // Saturday
            Assert.AreEqual(expected, result);
        }