Skip to content

Commit e879d5a

Browse files
committed
debug: add assert checks
1 parent c7e1971 commit e879d5a

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

src/TimeProviderExtensions/ManualTimeProvider.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,8 @@ public void SetUtcNow(DateTimeOffset value)
331331
}
332332

333333
utcNow = value;
334+
335+
Debug.Assert(callbacks.All(x => x.CallbackTime > utcNow), "Because there should never by any callbacks scheduled in the past at this point.");
334336
}
335337

336338
ManualTimerScheduler? TryGetNext(DateTimeOffset targetUtcNow)
@@ -473,6 +475,8 @@ public void Jump(DateTimeOffset value)
473475
scheduler.TimerElapsed();
474476
}
475477
}
478+
479+
Debug.Assert(callbacks.All(x => x.CallbackTime > utcNow), "Because there should never by any callbacks scheduled in the past at this point.");
476480
}
477481

478482
IEnumerable<ManualTimerScheduler> TryGetNext(DateTimeOffset targetUtcNow)
@@ -496,6 +500,8 @@ internal void ScheduleCallback(ManualTimerScheduler scheduler, TimeSpan waitTime
496500
{
497501
lock (callbacks)
498502
{
503+
Debug.Assert(!callbacks.Contains(scheduler), "A scheduler should only be added to callbacks one time.");
504+
499505
scheduler.CallbackTime = utcNow + waitTime;
500506

501507
var insertPosition = callbacks.FindIndex(x => x.CallbackTime > scheduler.CallbackTime);

0 commit comments

Comments
 (0)