public void TestSpawn() { var timerManager = IoCManager.Resolve <ITimerManager>(); var fired = false; Timer.Spawn(TimeSpan.FromMilliseconds(500), () => fired = true); Assert.That(fired, Is.False); // Set timers ahead 250 ms timerManager.UpdateTimers(new FrameEventArgs(.25f)); Assert.That(fired, Is.False); // Another 300ms should do it. timerManager.UpdateTimers(new FrameEventArgs(.30f)); Assert.That(fired, Is.True); }
public void TestCancellation() { var timerManager = IoCManager.Resolve <ITimerManager>(); var taskManager = IoCManager.Resolve <ITaskManager>(); var cts = new CancellationTokenSource(); var ran = false; Timer.Spawn(1000, () => ran = true, cts.Token); timerManager.UpdateTimers(new FrameEventArgs(.5f)); Assert.That(ran, Is.False); cts.Cancel(); timerManager.UpdateTimers(new FrameEventArgs(.6f)); Assert.That(ran, Is.False); }
public void TestAsyncDelay() { var timerManager = IoCManager.Resolve <ITimerManager>(); var ran = false; async void Run() { await Timer.Delay(TimeSpan.FromMilliseconds(500)); ran = true; } Run(); Assert.That(ran, Is.False); // Set timers ahead 250 ms timerManager.UpdateTimers(new FrameEventArgs(.25f)); Assert.That(ran, Is.False); // Another 300ms should do it. timerManager.UpdateTimers(new FrameEventArgs(.30f)); Assert.That(ran, Is.True); }