Exemple #1
0
        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();
        }
Exemple #2
0
        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);
            }
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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();
        }