public void WhenValidDate_ReadSameDate()
            {
                var time = new WakeUpDateTime(1, 2, 3, 4);

                target.WakeUp = time;

                Assert.That(target.WakeUp, Is.EqualTo(time));
            }
示例#2
0
        public async Task SystemWakeUpAsync(DateTime start, TimeSpan elapsed, CancellationToken ct)
        {
            DateTime wakeUpTime = start.AddMinutes(settings.SleepMinutes);
            DateTime now        = start + elapsed;

            logger.LogInfo().WithCategory(LogCategory.Manager).WithMessage($"RTC: {now.ToLocalTime()}, wakeup at {wakeUpTime.ToLocalTime()} elapsed since start {elapsed}").Commit();
            await Retrier.RetryAsync(() =>
            {
                wittyPiService.WakeUp = WakeUpDateTime.Hourly((byte)wakeUpTime.Minute, (byte)wakeUpTime.Second);
                var wakeUp            = wittyPiService.WakeUp;
                logger.LogInfo().WithCategory(LogCategory.Manager).WithMessage($"Read Wakeup is {wakeUp.Day} {wakeUp.Hour}:{wakeUp.Min:00}.{wakeUp.Sec:00}").Commit();
                if (wakeUp.Day.HasValue || wakeUp.Hour.HasValue || wakeUp.Min != wakeUpTime.Minute || wakeUp.Sec != wakeUpTime.Second)
                {
                    throw new Exception("Read Wakeup date doesn't match");
                }
            }, logger, int.MaxValue, "Setting wakeup", true, ct);

            logger.LogInfo().WithCategory(LogCategory.Manager).WithMessage("WakeUp set").Commit();
        }