private Task<SystemRecycled> start(string projectName)
        {
            _project = new Project
            {
                ProjectPath = TestingContext.FindParallelDirectory(projectName)
            };

            _controller = new EngineController(_project, new ProcessRunnerSystemLauncher(_project));

            return _controller.Start();
        }
        public AppDomainSystemLauncher(Project project)
        {
            _remoteSetup.Port = project.Port;
            _remoteSetup.ServiceDirectory = project.ProjectPath;

            _project = project;

            if (project.BuildProfile.IsNotEmpty())
            {
                _remoteSetup.BuildProfile = project.BuildProfile;
            }

            if (project.ConfigFile.IsNotEmpty())
            {
                _remoteSetup.Setup.ConfigurationFile = project.ConfigFile;
            }
        }
 public LocalLauncher(Project project, ISystem system)
 {
     _project = project;
     _system = system;
 }
        // Not reliable in a tight loop because of the file system write
        public void can_use_config_to_specify_the_system_name_as_class_name_only()
        {
            using (var controller = controllerForProject("MultipleSystems"))
            {
                var project = new Project
                {
                    SystemTypeName = typeof(System2).Name
                };

                new FileSystem().WriteObjectToFile(controller.Project.ProjectPath.AppendPath(Project.FILE), project);
                Thread.Sleep(100);

                var task = controller.Start();
                task.Wait(5.Seconds());

                var message = task.Result;

                message.success.ShouldBe(true);
                message.system_name.ShouldBe(typeof(System2).FullName);

            }
        }