private void addItemFor(List <OnDemandRun> runs, Project project)
        {
            var run = new OnDemandRun(project.FullName);

            run.ShouldRunAllTestsInProject();
            runs.Add(run);
        }
        public Dictionary <string, Action <dynamic> > GetClientHandlers()
        {
            var handlers = new Dictionary <string, Action <dynamic> >();

            handlers.Add("build-test-all", (msg) => {
                var message  = new ProjectChangeMessage();
                var projects = _cache.GetAll <Project>();
                foreach (var project in projects)
                {
                    if (project.Value == null)
                    {
                        continue;
                    }
                    project.Value.RebuildOnNextRun();
                    message.AddFile(new ChangedFile(project.Key));
                }
                _bus.Publish(message);
            });
            handlers.Add("build-test-projects", (msg) => {
                var message  = new ProjectChangeMessage();
                var projects = ((IEnumerable <object>)msg.projects).Select(x => x.ToString());
                projects.ToList().ForEach(x => message.AddFile(new ChangedFile(x)));
                _bus.Publish(message);
            });
            handlers.Add("on-demand-test-run", (msg) => {
                var runs = ((IEnumerable <dynamic>)msg.runs)
                           .Select(x => {
                    var run = new OnDemandRun(
                        x.project.ToString(),
                        ((IEnumerable <dynamic>)x.tests).Select(y => y.ToString()).ToArray(),
                        ((IEnumerable <dynamic>)x.members).Select(y => y.ToString()).ToArray(),
                        ((IEnumerable <dynamic>)x.namespaces).Select(y => y.ToString()).ToArray()
                        );
                    if ((bool)x.project_runall_tests == true)
                    {
                        run.ShouldRunAllTestsInProject();
                    }
                    return(run);
                });

                var message  = new ProjectChangeMessage();
                var projects = _cache.GetAll <Project>();
                Debug.WriteDebug(string.Format("Recieved {0} runs", runs.Count()));
                addProjects(runs, message, projects);
                var onDemandPreProcessor = getOnDemandPreProcessor();
                foreach (var run in runs)
                {
                    Debug.WriteDebug("Adding test run to preprocessor " + run.Project);
                    onDemandPreProcessor.AddRuns(run);
                }
                onDemandPreProcessor.Activate();
                _disableOnDemandRunnerOnNextRunCompleted = true;
                _bus.Publish(message);
            });

            return(handlers);
        }
Exemplo n.º 3
0
 private static void add(List <OnDemandRun> runs, Project project)
 {
     try
     {
         var run = new OnDemandRun(project.FullName);
         run.ShouldRunAllTestsInProject();
         runs.Add(run);
     }
     catch
     {
     }
 }