public function transformToContainerParameters()
 {
     if (!is_null($this->configurationFile)) {
         foreach (Yaml::parse(file_get_contents($this->configurationFile)) as $configurationID => $configurationPart) {
             if (!is_null($configurationPart)) {
                 if (!array_key_exists($configurationID, $this->configuration)) {
                     $this->configuration[$configurationID] = array();
                 }
                 array_unshift($this->configuration[$configurationID], $configurationPart);
             }
         }
     }
     foreach ($this->configuration as $configurationID => $configurationParts) {
         $configurations = array();
         foreach ($configurationParts as $configurationPart) {
             $configurations[] = $configurationPart;
         }
         if ($configurationID == GeneralConfiguration::getConfigurationID()) {
             $transformerID = 'General';
         } else {
             $plugin = PluginRepository::findByPluginID($configurationID);
             $transformerID = $plugin->getPluginID();
         }
         $transformerClass = __NAMESPACE__ . '\\' . $transformerID . 'Transformer';
         $transformer = new $transformerClass($configurations, $this->container);
         /* @var $transformer \Stagehand\TestRunner\DependencyInjection\Transformation\Transformer */
         $transformer->transform();
     }
     if (is_null($this->container->getParameter('test_file_pattern'))) {
         $this->container->setParameter('test_file_pattern', $this->plugin->getTestFilePattern());
     }
 }
 /**
  * {@inheritdoc}
  */
 public function process(ContainerBuilder $container)
 {
     $container->setAlias('preparer', $this->plugin->getPluginID() . '.preparer');
     $container->setAlias('collector', $this->plugin->getPluginID() . '.collector');
     $container->setAlias('runner', $this->plugin->getPluginID() . '.runner');
     if ($container->hasDefinition($this->plugin->getPluginID() . '.command_line_option_builder')) {
         $container->setAlias('command_line_option_builder', $this->plugin->getPluginID() . '.command_line_option_builder');
     }
 }
 /**
  * @param string $command
  *
  * @return array
  */
 protected function buildOptions($command)
 {
     $options = array();
     if (basename(trim($command, '\'"')) != 'testrunner') {
         $configFile = $this->getPHPConfigDir();
         if ($configFile !== false) {
             $options[] = '-c';
             $options[] = escapeshellarg($configFile);
         }
         $options[] = escapeshellarg($_SERVER['argv'][0]);
     }
     if ($this->terminal->shouldColor()) {
         $options[] = '--ansi';
     }
     $options[] = escapeshellarg(strtolower($this->plugin->getPluginID()));
     if (!is_null($this->environment->getPreloadScript())) {
         $options[] = '-p ' . escapeshellarg($this->environment->getPreloadScript());
     }
     $options[] = '-R';
     if ($this->runner->shouldNotify()) {
         $options[] = '-m';
     }
     if ($this->runner->shouldStopOnFailure()) {
         $options[] = '--stop-on-failure';
     }
     if (!$this->testTargetRepository->isDefaultFilePattern()) {
         $options[] = '--test-file-pattern=' . escapeshellarg($this->testTargetRepository->getFilePattern());
     }
     if ($this->runner->hasDetailedProgress()) {
         $options[] = '--detailed-progress';
     }
     if (!is_null($this->commandLineOptionBuilder)) {
         $options = $this->commandLineOptionBuilder->build($options);
     }
     $this->testTargetRepository->walkOnResources(function ($resource, $index, TestTargetRepository $testTargetRepository) use(&$options) {
         $options[] = escapeshellarg($resource);
     });
     return $options;
 }
 /**
  * @return array
  */
 public function getRequiredSuperTypes()
 {
     return $this->plugin->getTestClassSuperTypes();
 }