public void TestActionExecutionCounting() { using (var taskScheduler2 = new TaskScheduler(Mock.Of <IShamanLogger>())) { _taskScheduler.Schedule(() => { Thread.Sleep(100); }, 10); _taskScheduler.Schedule(() => { Thread.Sleep(100); }, 10); taskScheduler2.Schedule(() => { Thread.Sleep(100); }, 10); Thread.Sleep(20); // schedulers tasks triggers only in second PendingTask.GetExecutingActionsCount().Should().Be(3); } Thread.Sleep(100);// wait task ends }
public void TaskCountingDelayedTasksTest() { using (var taskScheduler2 = new TaskScheduler(Mock.Of <IShamanLogger>())) { _taskScheduler.Schedule(() => { Thread.Sleep(100); }, 10); _taskScheduler.Schedule(() => { Thread.Sleep(100); }, 10); _taskScheduler.Schedule(() => { Thread.Sleep(100); }, 10); _taskScheduler.Schedule(() => { Thread.Sleep(100); }, 10); PendingTask.GetActiveTimersCount().Should().Be(4); taskScheduler2.Schedule(() => { Thread.Sleep(100); }, 10); PendingTask.GetActiveTimersCount().Should().Be(5); } }
public void TaskCountingPeriodShortLivingTasksTest() { using (var taskScheduler2 = new TaskScheduler(Mock.Of <IShamanLogger>())) { _taskScheduler.ScheduleOnInterval(() => { Thread.Sleep(100); }, 10, 10, true); _taskScheduler.ScheduleOnInterval(() => { Thread.Sleep(100); }, 10, 10, true); _taskScheduler.ScheduleOnInterval(() => { Thread.Sleep(100); }, 10, 10, true); _taskScheduler.ScheduleOnInterval(() => { Thread.Sleep(100); }, 10, 10, true); PendingTask.GetActivePeriodicTimersCount().Should().Be(TaskSchedulerInternalPeriodicTimersCount); PendingTask.GetActivePeriodicSlTimersCount().Should().Be(4); taskScheduler2.ScheduleOnInterval(() => { Thread.Sleep(100); }, 10, 10, true); PendingTask.GetActivePeriodicTimersCount().Should().Be(TaskSchedulerInternalPeriodicTimersCount); PendingTask.GetActivePeriodicSlTimersCount().Should().Be(5); } }
public void TaskCountingOneTimeTasksTest() { using (var taskScheduler2 = new TaskScheduler(Mock.Of <IShamanLogger>())) { _taskScheduler.ScheduleOnceOnNow(() => { Thread.Sleep(100); }); _taskScheduler.ScheduleOnceOnNow(() => { Thread.Sleep(100); }); taskScheduler2.ScheduleOnceOnNow(() => { Thread.Sleep(100); }); taskScheduler2.ScheduleOnceOnNow(() => { Thread.Sleep(100); }); TaskScheduler.GetGlobalScheduledOnceTasksCount().Should().Be(4); taskScheduler2.ScheduleOnceOnNow(() => { Thread.Sleep(100); }); TaskScheduler.GetGlobalScheduledOnceTasksCount().Should().Be(5); Thread.Sleep(150); TaskScheduler.GetGlobalScheduledOnceTasksCount().Should().Be(0); } }
public void Setup() { // to exclude test interferring _loggerMock = new Mock <IShamanLogger>(); _taskScheduler = new TaskScheduler(_loggerMock.Object); }