private bool IsTimeToConnect() { var connectThisWeek = TimingProvider.ThisWeek(this.connectWeeklyTime, this.InstantNow()); var disconnectThisWeek = TimingProvider.ThisWeek(this.disconnectWeeklyTime, this.InstantNow()); var now = this.TimeNow(); return(now.IsLessThan(disconnectThisWeek) || now.IsGreaterThan(connectThisWeek)); }
internal void GetNextUtc_FromUnixEpoch_ReturnsExpectedResult() { // Arrange var utcNow = StubZonedDateTime.UnixEpoch(); // Act var result = TimingProvider.GetNextUtc(new WeeklyTime(IsoDayOfWeek.Sunday, LocalTime.Midnight), utcNow.ToInstant()); // Assert Assert.Equal(StubZonedDateTime.UnixEpoch() + Duration.FromDays(3), result); }
internal void GetDurationToNextUtc_WithUnixEpochPlusOneMinutes_ReturnsExpectedResult() { // Arrange var durationToNext = Duration.FromMinutes(1); var next = StubZonedDateTime.UnixEpoch() + durationToNext; var now = StubZonedDateTime.UnixEpoch().ToInstant(); // Act var result = TimingProvider.GetDurationToNextUtc(next, now); // Assert Assert.Equal(durationToNext, result); }
internal void GetDelayToNextDuration_WithVariousDurations_ReturnsExpectedResult( int millisecondsInitialOffset, int millisecondsDuration, int millisecondsDelay) { // Arrange var utcNow = StubZonedDateTime.UnixEpoch() + Duration.FromMilliseconds(millisecondsInitialOffset); var duration = Duration.FromMilliseconds(millisecondsDuration); // Act var result = TimingProvider.GetDelayToNextDuration(utcNow, duration); // Assert Assert.Equal(Duration.FromMilliseconds(millisecondsDelay), result); }
public void Sleep(int millis) { #if !NETCOREAPP1_0 TimingProvider.Sleep(millis); #else // in order to avoid long sleeps (netcore1.0 doesn't provide ThreadInterruptException for sleep) const int sleepTimePerCycle = DEFAULT_SLEEP_TIME_MILLISECONDS; while (millis > 0) { TimingProvider.Sleep(Math.Min(sleepTimePerCycle, millis)); millis -= sleepTimePerCycle; if (isShutdownRequested) { break; } } #endif }
internal void IsOutSideInterval_WithVariousDateTimes_ReturnsExpectedResult( int year, int month, int day, int hour, int minute, bool expected) { // Arrange var localUtc = new LocalDateTime(year, month, day, hour, minute); var utcNow = new ZonedDateTime(localUtc, DateTimeZone.Utc, Offset.Zero); // Act var start = new WeeklyTime(IsoDayOfWeek.Saturday, new LocalTime(20, 00)); var end = new WeeklyTime(IsoDayOfWeek.Sunday, new LocalTime(21, 00)); var result = TimingProvider.IsOutsideInterval(start, end, utcNow.ToInstant()); // Assert Assert.Equal(expected, result); }
public void InitializeTimeSync(long clusterTimeOffset, bool isTimeSyncSupported) { TimingProvider.Initialze(clusterTimeOffset, isTimeSyncSupported); }
public ITiming GetTiming() { return(TimingProvider.GetSelectedSource()); }
public void Sleep(int millis) { TimingProvider.Sleep(millis); }