public void ExistingTaskExists() { Scheduler.InitTaskForId(testid, test_task_type); var task = Scheduler.FetchTaskForId(testid, test_task_type); Assert.That(task.id == testid); }
public void InitTaskForIdYieldsStopped() { Scheduler.InitTaskForId(testid, test_task_type); var task = Scheduler.FetchTaskForId(testid, test_task_type); Assert.AreEqual(TaskStatus.stopped, task.status); }
public void StartTaskForIdYieldsAllocated() { Scheduler.InitTaskForId(testid, test_task_type); Scheduler.StartTaskForId(testid, test_task_type); var task = Scheduler.FetchTaskForId(testid, test_task_type); Assert.AreEqual(TaskStatus.allocated, task.status); }
public void UpdateStartTaskForIdYieldsRunning() { Scheduler.InitTaskForId(testid, test_task_type); Scheduler.StartTaskForId(testid, test_task_type); Scheduler.UpdateStartTaskForId(testid, test_task_type); var task = Scheduler.FetchTaskForId(testid, test_task_type); Assert.AreEqual(TaskStatus.running, task.status); }
public void StopTaskForIdYieldsStopTimeGreaterThanStartTime() { Scheduler.InitTaskForId(testid, test_task_type); Scheduler.StartTaskForId(testid, test_task_type); Utils.Wait(3); Scheduler.StopTaskForId(testid, test_task_type); var task = Scheduler.FetchTaskForId(testid, test_task_type); Assert.Greater(task.stop, task.start); }
public void IsNotAbandonedIfWithinInterval() { Scheduler.InitTaskForId(testid, test_task_type); var task = Scheduler.FetchTaskForId(testid, test_task_type); var less_than_interval = new System.TimeSpan(0, (Configurator.nonical_aggregate_interval_hours * 60) - 60, 0); task.start = DateTime.UtcNow - less_than_interval; Scheduler.StoreTaskForId(task, testid, test_task_type); Assert.AreEqual(false, Scheduler.IsAbandoned(testid, test_task_type)); }
public void IsAbandonedIfBeyondInterval() { Scheduler.InitTaskForId(testid, test_task_type); var task = Scheduler.FetchTaskForId(testid, test_task_type); var more_than_interval = new System.TimeSpan(0, (Configurator.nonical_aggregate_interval_hours * 60) + 60, 0); task.start = DateTime.UtcNow - more_than_interval; // started more than 8hrs ago Scheduler.StoreTaskForId(task, testid, test_task_type); Assert.AreEqual(true, Scheduler.IsAbandoned(testid, test_task_type)); }
public void MaybeStartTaskUpdatesStartTime() { Scheduler.InitTaskForId(testid, test_task_type); var task = Scheduler.FetchTaskForId(testid, test_task_type); var now = DateTime.UtcNow; Scheduler.MaybeStartTaskForId(now, test_calinfo, test_task_type); task = Scheduler.FetchTaskForId(testid, test_task_type); Assert.That(task.start > now); }
public void MaybeStartTaskSucceedsForLongEnoughInterval() { Scheduler.InitTaskForId(testid, test_task_type); var task = Scheduler.FetchTaskForId(testid, test_task_type); var ts = new System.TimeSpan(0, (Configurator.nonical_aggregate_interval_hours * 60) + 10, 0); var now = task.start + ts; Scheduler.MaybeStartTaskForId(now, test_calinfo, test_task_type); task = Scheduler.FetchTaskForId(testid, test_task_type); Assert.AreEqual(TaskStatus.allocated, task.status); }
public void MaybeStartTaskFailsForTooShortInterval() { Scheduler.InitTaskForId(testid, test_task_type); var task = Scheduler.FetchTaskForId(testid, test_task_type); var ts = new System.TimeSpan(0, (Configurator.nonical_aggregate_interval_hours * 60) - 10, 0); var now = task.start + ts; Scheduler.MaybeStartTaskForId(now, test_calinfo, test_task_type); task = Scheduler.FetchTaskForId(testid, test_task_type); Assert.AreEqual(TaskStatus.stopped, task.status); }
public void IsAbandonedIfLockedAndNotRunning() { Scheduler.InitTaskForId(testid, test_task_type); var task = Scheduler.FetchTaskForId(testid, test_task_type); //task.running = false; task.status = TaskStatus.stopped; Scheduler.StoreTaskForId(task, testid, test_task_type); Scheduler.LockId(testid, test_task_type); Assert.AreEqual(true, Scheduler.IsAbandoned(testid, test_task_type)); }
public static bool IsAbandoned(string id, TaskType type) { var task = Scheduler.FetchTaskForId(id, type); if (IsLockedId(id, type) == true && task.status != TaskStatus.running) { return(true); } var start = task.start; var now = DateTime.UtcNow; if (now - start <= IntervalFromType(type)) { return(false); } else { return(true); } }