Ejemplo n.º 1
0
 public TargetInvoker(ITargetBuilderBounce bounce)
 {
     BuiltTasks = new HashSet<IObsoleteTask>();
     Bounce = bounce;
     Walker = new TaskWalker();
     CleanAfterBuildRegister = new CleanAfterBuildRegister();
     OnceOnlyCleaner = new OnceOnlyTaskInvoker((task, command) => InvokeAndLog(task, command));
     OnceOnlyBuilder = new OnceOnlyTaskInvoker((task, command) => InvokeAndLog(task, command));
     OnceOnlyDescriber = new OnceOnlyTaskInvoker((task, command) => InvokeAndLog(task, command));
 }
Ejemplo n.º 2
0
        public void PurityAggregateReturnsImpureIfAnySubTasksAreImpure()
        {
            var walker = new TaskWalker();

            var all = new All(new ImpureTask(), new PureTask());

            var ta = new TaskAggregator <TaskPurity>(dep => new TaskPurity(dep));

            walker.Walk(new TaskDependency(all), ta.Before, ta.After);
            Assert.That(ta.Aggregate.Purity, Is.EqualTo(false));
        }
Ejemplo n.º 3
0
        public void WalkDescriptions()
        {
            var walker = new TaskWalker();

            var all = new All(new PrintTask(), new PrintTask());

            var ta = new TaskAggregator <TaskCount>(dep => new TaskCount(dep));

            walker.Walk(new TaskDependency(all), ta.Before, ta.After);
            Assert.That(ta.Aggregate.Count, Is.EqualTo(3));
        }
Ejemplo n.º 4
0
        public IEnumerable<IParameter> FindParametersInTask(IObsoleteTask task) {
            var walker = new TaskWalker();

            var parameters = new HashSet<IParameter>();

            walker.Walk(new TaskDependency(task), null, dependency => {
                var param = dependency.Task as IParameter;
                if (param != null) {
                    parameters.Add(param);
                }
            });

            return parameters;
        }
Ejemplo n.º 5
0
        public void WalkAggregatesButNoLoopingForever()
        {
            var walker = new TaskWalker();

            var all     = new All();
            var allDeps = new List <IObsoleteTask> {
                new PrintTask(), new PrintTask(), all
            };

            all.Tasks = allDeps;

            var ta = new TaskAggregator <TaskCount>(dep => new TaskCount(dep));

            walker.Walk(new TaskDependency(all), ta.Before, ta.After);
            Assert.That(ta.Aggregate.Count, Is.EqualTo(3));
        }