public void OnTaskError_TaskManagerOnTaskErrorEventMustBeCalled() { Exception exception = new Exception(); IDateTimeProvider dateTimeProvider = Substitute.For <IDateTimeProvider>(); TaskCofiguration taskCofiguration = new TaskCofiguration(1, "Task1", 10, true, true, false); ITask task = Substitute.For <ITask>(); task.WhenForAnyArgs(x => x.Run()).Do( x => { throw exception; }); ITimerFactory timerFactory = Substitute.For <ITimerFactory>(); ITimer timer = new TimerStub(DateTime.UtcNow); timerFactory.CreateTimer(1).ReturnsForAnyArgs(timer); TaskDefinition taskDefinition = new TaskDefinition(task, taskCofiguration); TaskManager taskManager = new TaskManager(new List <TaskDefinition> { taskDefinition }, timerFactory, dateTimeProvider); taskManager.OnTaskError += (sender, args) => Assert.AreEqual(exception, args.Error); taskManager.Start(); }
private void InitTaskRunner(IList <TaskDefinition> taskDefinitions) { m_TaskRunners = new List <ITaskRunner>(taskDefinitions.Count); for (int i = 0; i < taskDefinitions.Count; i++) { TaskDefinition taskDefinition = taskDefinitions[i]; TaskCofiguration taskCofiguration = taskDefinition.Configuration; ITimer timer = m_TimerFactory.CreateTimer(taskCofiguration.Seconds * 1000); ITaskRunner taskRunner = new TaskRunner(taskDefinition.Task, taskCofiguration.TaskId, m_DateTimeProvider, timer, taskCofiguration.Enabled, taskCofiguration.StopOnError, taskCofiguration.RunOnlyOnce); taskRunner.OnTaskError += TaskRunnerOnTaskError; taskRunner.TaskEnded += TaskRunnerAfterTaskEnded; taskRunner.TaskStarting += TaskRunnerBeforeTaskStarted; TaskRunners.Add(taskRunner); } }
public void Constructor() { IDateTimeProvider dateTimeProvider = Substitute.For <IDateTimeProvider>(); TaskCofiguration taskCofiguration = new TaskCofiguration(1, "Task1", 10, true, true, false); ITask task = Substitute.For <ITask>(); TaskDefinition taskDefinition = new TaskDefinition(task, taskCofiguration); TaskManager taskManager = new TaskManager(new List <TaskDefinition> { taskDefinition }, new DefaultTimerFactory(), dateTimeProvider); Assert.AreEqual(1, taskManager.TaskRunners.Count); Assert.AreEqual(taskCofiguration.Enabled, taskManager.TaskRunners[0].Enabled); Assert.AreEqual(taskCofiguration.Seconds * 1000, taskManager.TaskRunners[0].Interval); Assert.AreEqual(taskCofiguration.RunOnlyOnce, taskManager.TaskRunners[0].RunOnlyOnce); Assert.AreEqual(taskCofiguration.StopOnError, taskManager.TaskRunners[0].StopOnError); Assert.AreEqual(false, taskManager.TaskRunners[0].IsRunning); }
public void Start() { IDateTimeProvider dateTimeProvider = Substitute.For <IDateTimeProvider>(); TaskCofiguration taskCofiguration = new TaskCofiguration(1, "Task1", 10, true, true, false); ITask task = Substitute.For <ITask>(); ITimerFactory timerFactory = Substitute.For <ITimerFactory>(); ITimer timer = Substitute.For <ITimer>(); timerFactory.CreateTimer(1).ReturnsForAnyArgs(timer); TaskDefinition taskDefinition = new TaskDefinition(task, taskCofiguration); TaskManager taskManager = new TaskManager(new List <TaskDefinition> { taskDefinition }, timerFactory, dateTimeProvider); taskManager.Start(); timer.Received(1).Start(); }