public async Task TestDoNowExecutesInstantlyAsync() { using var scheduler = new EspeonScheduler(Logger); var task = scheduler.DoNow(10, EmptyCallback); var expecectedResult = task.WaitUntilExecutedAsync(); var actualResult = await Task.WhenAny(expecectedResult, Task.Delay(Tolerance)); Assert.AreEqual(expecectedResult, actualResult); }
public async Task TestDoNowExecutesBeforeOtherTaskAsync() { using var scheduler = new EspeonScheduler(Logger); var task1 = scheduler.DoIn(TimeSpan.FromSeconds(5), 10, EmptyCallback); var task2 = scheduler.DoNow(10, EmptyCallback); var expectedResult = task2.WaitUntilExecutedAsync(); var timeout = Task.Delay(TimeSpan.FromSeconds(20)); var actualResult = await Task.WhenAny(task1.WaitUntilExecutedAsync(), expectedResult, timeout); Assert.AreEqual(expectedResult, actualResult); }