示例#1
0
        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);
        }
示例#2
0
        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);
        }