public void MondayItemInPast_OnRollDay_IsTomorrow()
        {
            // Arrange
            var currentTime = new DateTimeOffset(2015, 01, 12, 16, 35, 22,
                                                 TimeZoneInfo.Local.GetUtcOffset(ScheduleHelper.Now()));

            SetCurrentTime(currentTime);

            var monday = new DateTimeOffset(2015, 01, 12, 15, 32, 00,
                                            TimeZoneInfo.Local.GetUtcOffset(ScheduleHelper.Now()));
            var expectedTime = new DateTimeOffset(2015, 01, 13, 15, 32, 00,
                                                  TimeZoneInfo.Local.GetUtcOffset(ScheduleHelper.Now()));

            Assert.AreEqual(DayOfWeek.Monday, monday.DayOfWeek);

            ScheduleInfo info = new ScheduleInfo()
            {
                EventTime = monday,
                TimeType  = ScheduleTimeType.Standard,
            };

            // Act
            var newDateTime = ScheduleHelper.RollForwardToNextDay(info);

            // Assert
            Assert.AreEqual(expectedTime, newDateTime);
        }
        public void SaturdayItemInFuture_OnRollDay_IsUnchanged()
        {
            // Arrange
            DateTime saturday = new DateTime(2020, 01, 11, 15, 32, 00);

            Assert.AreEqual(DayOfWeek.Saturday, saturday.DayOfWeek);
            ScheduleInfo info = new ScheduleInfo()
            {
                EventTime = saturday,
                TimeType  = ScheduleTimeType.Standard,
            };

            // Act
            var newDate = ScheduleHelper.RollForwardToNextDay(info);

            // Assert
            Assert.AreEqual(saturday, newDate);
        }
        public void MondayItemInFuture_OnRollDay_IsUnchanged()
        {
            // Arrange
            var monday = new DateTimeOffset(2020, 01, 06, 15, 32, 00,
                                            TimeZoneInfo.Local.GetUtcOffset(ScheduleHelper.Now()));

            Assert.AreEqual(DayOfWeek.Monday, monday.DayOfWeek);
            ScheduleInfo info = new ScheduleInfo()
            {
                EventTime = monday,
                TimeType  = ScheduleTimeType.Standard,
            };

            // Act
            var newDate = ScheduleHelper.RollForwardToNextDay(info);

            // Assert
            Assert.AreEqual(monday, newDate);
        }
        public void SaturdayItemInFuture_OnRollDay_IsUnchanged()
        {
            // Arrange
            var saturday = new DateTimeOffset(2021, 01, 09, 15, 32, 00,
                                              TimeZoneInfo.Local.GetUtcOffset(ScheduleHelper.Now()));

            Assert.AreEqual(DayOfWeek.Saturday, saturday.DayOfWeek);
            ScheduleInfo info = new ScheduleInfo()
            {
                EventTime = saturday,
                TimeType  = ScheduleTimeType.Standard,
            };
            var scheduleHelper = new ScheduleHelper(new FakeSunsetProvider());

            // Act
            var newDate = scheduleHelper.RollForwardToNextDay(info);

            // Assert
            Assert.AreEqual(saturday, newDate);
        }