/** * @param \Symfony\Component\Console\Input\InputInterface $input * @param \Symfony\Component\Console\Output\OutputInterface $output * @param \Stagehand\TestRunner\DependencyInjection\Transformation\Transformation $transformation */ protected function transformToConfiguration(InputInterface $input, OutputInterface $output, Transformation $transformation) { if (!is_null($input->getOption('config'))) { $transformation->setConfigurationFile($this->fileSystem->getAbsolutePath($input->getOption('config'), ApplicationContext::getInstance()->getEnvironment()->getWorkingDirectoryAtStartup())); } if (count($input->getArgument('test_directory_or_file')) > 0) { $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('test_targets' => array('resources' => $input->getArgument('test_directory_or_file')))); } if ($input->getOption('recursive')) { $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('test_targets' => array('recursive' => true))); } if ($this->getPlugin()->hasFeature('test_methods')) { if (count($input->getOption('test-method')) > 0) { $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('test_targets' => array('methods' => $input->getOption('test-method')))); } } if ($this->getPlugin()->hasFeature('test_classes')) { if (count($input->getOption('test-class')) > 0) { $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('test_targets' => array('classes' => $input->getOption('test-class')))); } } if (!is_null($input->getOption('test-file-pattern'))) { $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('test_targets' => array('file_pattern' => $input->getOption('test-file-pattern')))); } if ($this->getPlugin()->hasFeature('autotest')) { if ($input->getOption('autotest')) { $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('autotest' => array('enabled' => true))); } if (count($input->getOption('watch-dir')) > 0) { $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('autotest' => array('watch_dirs' => $input->getOption('watch-dir')))); } } if ($this->getPlugin()->hasFeature('notify')) { if ($input->getOption('notify')) { $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('notify' => true)); } } if ($this->getPlugin()->hasFeature('junit_xml')) { if (!is_null($input->getOption('log-junit'))) { $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('junit_xml' => array('file' => $input->getOption('log-junit')))); } if ($input->getOption('log-junit-realtime')) { $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('junit_xml' => array('realtime' => true))); } } if ($this->getPlugin()->hasFeature('stop_on_failure')) { if ($input->getOption('stop-on-failure')) { $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('stop_on_failure' => true)); } } if ($this->getPlugin()->hasFeature('detailed_progress')) { if ($input->getOption('detailed-progress')) { $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('detailed_progress' => true)); } } $this->doTransformToConfiguration($input, $output, $transformation); }
public function transformToContainerParameters() { if (!is_null($this->configurationFile)) { foreach (Yaml::parse($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', ApplicationContext::getInstance()->getPlugin()->getTestFilePattern()); } }