예제 #1
0
        public void run_task_without_dependencies()
        {
            var context = Setup.Context();
            var task = new MyWrapperClass.Clean();
            task.Context = context;
           var method = task.GetType().GetMethod("Execute");

            var exec = new TaskExecutor(task, method);
            
            exec.Execute(context);
            Assert.Equal(context.Data["Result"],23);          
        }
예제 #2
0
 TaskExecutor GetExecutor(TaskConfiguration config, TaskContext context)
 {
     var deps = config.GetDependencies(context.InitData);
     var execDeps = new TaskExecutor[deps.Length];
     for (var i = 0; i < deps.Length; i++)
     {
         var typeConfig = _tasks.Find(d => d.Type == deps[i]);
         if (typeConfig==null)throw new InvalidOperationException("Can't find task '{0}'".ToFormat(deps[i].Name));
         execDeps[i] = GetExecutor(typeConfig, context);
     }
     if (!config.ShouldExecute(context.InitData)) return TaskExecutor.SkipTask;
     var method = _configuration.GetExecutableMethod(config.Type);
     
     return new TaskExecutor(config.Instance,method,execDeps);
 }
예제 #3
0
        TaskExecutor GetExecutor(TaskConfiguration config, TaskContext context)
        {
            var deps     = config.GetDependencies(context.InitData);
            var execDeps = new TaskExecutor[deps.Length];

            for (var i = 0; i < deps.Length; i++)
            {
                var typeConfig = _tasks.Find(d => d.Type == deps[i]);
                if (typeConfig == null)
                {
                    throw new InvalidOperationException("Can't find task '{0}'".ToFormat(deps[i].Name));
                }
                execDeps[i] = GetExecutor(typeConfig, context);
            }

            var method = _configuration.GetExecutableMethod(config.Type);

            return(new TaskExecutor(config.Instance, method, execDeps));
        }