public void OneTimesExecuteTest() { var executeTimes = 0; ITimer timer = new LowAccurateTimer(); Action <CancellationToken> action = (c) => { executeTimes++; }; timer.AddOneTime(action, TimeSpan.FromMilliseconds(100)); Thread.Sleep(120); Assert.Equal(1, executeTimes); }
public void InfinityTimesExecuteTest() { const int executeNumber = 12; const int sleepTime = 100; var executeTimes = 0; ITimer timer = new LowAccurateTimer(); Action <CancellationToken> action = (c) => { executeTimes++; }; timer.AddNumberTimes(action, TimeSpan.FromMilliseconds(sleepTime), 0); Thread.Sleep(sleepTime * executeNumber); timer.Remove(action); // надеемся, что он будет вызван хотя бы 75% от общего количества раз Assert.InRange(executeTimes, executeNumber * 3 / 4, executeNumber); }
public void TwoTimesExecuteTest() { ITimer timer = new LowAccurateTimer(); TestTimer(timer, 20, 2); }