diff --git a/src/Majora/Bundle/GeneratorBundle/Generator/ContentModifier/BehatModifier.php b/src/Majora/Bundle/GeneratorBundle/Generator/ContentModifier/BehatModifier.php new file mode 100644 index 0000000..19696cf --- /dev/null +++ b/src/Majora/Bundle/GeneratorBundle/Generator/ContentModifier/BehatModifier.php @@ -0,0 +1,97 @@ +logger = $logger; + $this->filesystem = $filesystem; + $this->environment = $environment; + $this->debug = $debug; + + $this->resolver = new OptionsResolver(); + $this->resolver->setDefaults(array( + 'target' => '/config/behat.yml', + )); + $this->resolver->setRequired(array( + 'target', + 'path', + 'context', + 'domain', + 'loader', + )); + } + + /** + * @see ContentModifierInterface::modify() + */ + public function modify(SplFileInfo $generatedFile, array $data, Inflector $inflector, SplFileInfo $templateFile) + { + $options = $this->resolver->resolve($data); + $bundleInfo = $this->retrieveBundleInfoFromGeneratedFile($generatedFile, $inflector); + + $targetConfigFilepath = $this->resolveTargetFilePath( + $options['target'], + $generatedFile->getPath() + ); + + var_dump($options); + $configsFile = new SplFileInfo($targetConfigFilepath, '', ''); + $configsContent = $configsFile->getContents(); + + $namespaceArgs = explode('\\', $bundleInfo->getNamespace()); + + $behatBundle = sprintf('suites: + %1$s: + type: symfony_bundle + bundle: %1$s + paths: + - %2$s + contexts: + - %3$s: + domain: \'@%4$s\' + loader: \'@%5$s\' + em: \'@doctrine.orm.entity_manager\'', + $bundleInfo->getClassName(), + $options['path'], + $options['context'], + $options['domain'], + $options['loader'] + ); + + $this->filesystem->dumpFile( + $configsFile->getPathname(), + str_replace('suites:', $behatBundle, $configsContent) + ); + + $this->logger->info(sprintf('===========>file updated : %s', + $configsFile->getPathname() + )); + + return $generatedFile->getContents(); + } +} diff --git a/src/Majora/Bundle/GeneratorBundle/Resources/config/services.xml b/src/Majora/Bundle/GeneratorBundle/Resources/config/services.xml index 31e75ca..e6499f9 100644 --- a/src/Majora/Bundle/GeneratorBundle/Resources/config/services.xml +++ b/src/Majora/Bundle/GeneratorBundle/Resources/config/services.xml @@ -44,6 +44,13 @@ /> + + + + +