From 1dced888493d76c2e87f583b91b67205bf3724fc Mon Sep 17 00:00:00 2001 From: Gael Millet Date: Fri, 29 Jul 2016 16:44:58 +0200 Subject: [PATCH 1/4] Add behat modifier --- .../ContentModifier/BehatModifier.php | 90 +++++++++++++++++++ .../Resources/config/services.xml | 7 ++ 2 files changed, 97 insertions(+) create mode 100644 src/Majora/Bundle/GeneratorBundle/Generator/ContentModifier/BehatModifier.php 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..49b9d22 --- /dev/null +++ b/src/Majora/Bundle/GeneratorBundle/Generator/ContentModifier/BehatModifier.php @@ -0,0 +1,90 @@ +logger = $logger; + $this->filesystem = $filesystem; + $this->environment = $environment; + $this->debug = $debug; + + $this->resolver = new OptionsResolver(); + $this->resolver->setDefaults(array( + 'target' => '/config/behat.yml', + )); + } + + /** + * @see ContentModifierInterface::modify() + */ + public function modify(SplFileInfo $generatedFile, array $data, Inflector $inflector, SplFileInfo $templateFile) + { + $options = $this->resolver->resolve($data); + $bundleInfo = $this->retrieveBundleInfoFromGeneratedFile($generatedFile, $inflector); + + var_dump($bundleInfo); + + $targetConfigFilepath = $this->resolveTargetFilePath( + $options['target'], + $generatedFile->getPath() + ); + + $configsFile = new SplFileInfo($targetConfigFilepath, '', ''); + $configsContent = $configsFile->getContents(); + + $namespaceArgs = explode('\\', $bundleInfo->getNamespace()); + + $behatBundle = sprintf('suites: + %1$s: + type: symfony_bundle + bundle: %1$s + paths: + - %%paths.base%%/src/%2$s/Features + contexts: + - %3$s\Features\Context\Person2Context: + domain: \'@%4$s.domain\' + loader: \'@%4$s.loader\' + em: \'@doctrine.orm.entity_manager\'', + $bundleInfo->getClassName(), + str_replace('\\','/',$bundleInfo->getNamespace()), + $bundleInfo->getNamespace(), + strtolower($namespaceArgs[0]).'.'.strtolower(end($namespaceArgs)) + ); + + $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 @@ /> + + + + + From 34aee0c21f885f93d544584de897889be1e5cc51 Mon Sep 17 00:00:00 2001 From: Gael Millet Date: Fri, 29 Jul 2016 16:44:58 +0200 Subject: [PATCH 2/4] Add behat modifier --- .../ContentModifier/BehatModifier.php | 90 +++++++++++++++++++ .../Resources/config/services.xml | 7 ++ 2 files changed, 97 insertions(+) create mode 100644 src/Majora/Bundle/GeneratorBundle/Generator/ContentModifier/BehatModifier.php 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..1bfcfd1 --- /dev/null +++ b/src/Majora/Bundle/GeneratorBundle/Generator/ContentModifier/BehatModifier.php @@ -0,0 +1,90 @@ +logger = $logger; + $this->filesystem = $filesystem; + $this->environment = $environment; + $this->debug = $debug; + + $this->resolver = new OptionsResolver(); + $this->resolver->setDefaults(array( + 'target' => '/config/behat.yml', + )); + } + + /** + * @see ContentModifierInterface::modify() + */ + public function modify(SplFileInfo $generatedFile, array $data, Inflector $inflector, SplFileInfo $templateFile) + { + $options = $this->resolver->resolve($data); + $bundleInfo = $this->retrieveBundleInfoFromGeneratedFile($generatedFile, $inflector); + + var_dump($bundleInfo); + + $targetConfigFilepath = $this->resolveTargetFilePath( + $options['target'], + $generatedFile->getPath() + ); + + $configsFile = new SplFileInfo($targetConfigFilepath, '', ''); + $configsContent = $configsFile->getContents(); + + $namespaceArgs = explode('\\', $bundleInfo->getNamespace()); + + $behatBundle = sprintf('suites: + %1$s: + type: symfony_bundle + bundle: %1$s + paths: + - %%paths.base%%/src/%2$s/Features + contexts: + - %3$s\Features\Context\Person2Context: + domain: \'@%4$s.domain\' + loader: \'@%4$s.loader\' + em: \'@doctrine.orm.entity_manager\'', + $bundleInfo->getClassName(), + str_replace('\\','/',$bundleInfo->getNamespace()), + $bundleInfo->getNamespace(), + 'TODO' + ); + + $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 @@ /> + + + + + From c9480f5b9939ad4c83e21767cdfb48e7032d1057 Mon Sep 17 00:00:00 2001 From: Raphael Trzpit Date: Fri, 29 Jul 2016 17:48:42 +0200 Subject: [PATCH 3/4] Use options for behatmodifier --- .../ContentModifier/BehatModifier.php | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/Majora/Bundle/GeneratorBundle/Generator/ContentModifier/BehatModifier.php b/src/Majora/Bundle/GeneratorBundle/Generator/ContentModifier/BehatModifier.php index 49b9d22..46b1e67 100644 --- a/src/Majora/Bundle/GeneratorBundle/Generator/ContentModifier/BehatModifier.php +++ b/src/Majora/Bundle/GeneratorBundle/Generator/ContentModifier/BehatModifier.php @@ -37,6 +37,13 @@ public function __construct(Filesystem $filesystem, LoggerInterface $logger, $en $this->resolver->setDefaults(array( 'target' => '/config/behat.yml', )); + $this->resolver->setRequired(array( + 'target', + 'path', + 'context', + 'domain', + 'loader', + )); } /** @@ -47,13 +54,13 @@ public function modify(SplFileInfo $generatedFile, array $data, Inflector $infle $options = $this->resolver->resolve($data); $bundleInfo = $this->retrieveBundleInfoFromGeneratedFile($generatedFile, $inflector); - var_dump($bundleInfo); - $targetConfigFilepath = $this->resolveTargetFilePath( $options['target'], $generatedFile->getPath() ); + var_dump($options); + $configsFile = new SplFileInfo($targetConfigFilepath, '', ''); $configsContent = $configsFile->getContents(); @@ -64,16 +71,17 @@ public function modify(SplFileInfo $generatedFile, array $data, Inflector $infle type: symfony_bundle bundle: %1$s paths: - - %%paths.base%%/src/%2$s/Features + - %2$s contexts: - - %3$s\Features\Context\Person2Context: - domain: \'@%4$s.domain\' - loader: \'@%4$s.loader\' + - %3$s: + domain: \'@%4$s\' + loader: \'@%5$s\' em: \'@doctrine.orm.entity_manager\'', $bundleInfo->getClassName(), - str_replace('\\','/',$bundleInfo->getNamespace()), - $bundleInfo->getNamespace(), - strtolower($namespaceArgs[0]).'.'.strtolower(end($namespaceArgs)) + $options['path'], + $options['context'], + $options['domain'], + $options['loader'] ); $this->filesystem->dumpFile( From 0ff9561e9bf07426213fd28eae5ef83937456ef9 Mon Sep 17 00:00:00 2001 From: Raphael Trzpit Date: Fri, 29 Jul 2016 18:00:48 +0200 Subject: [PATCH 4/4] Fix oubli conflict --- .../GeneratorBundle/Generator/ContentModifier/BehatModifier.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Majora/Bundle/GeneratorBundle/Generator/ContentModifier/BehatModifier.php b/src/Majora/Bundle/GeneratorBundle/Generator/ContentModifier/BehatModifier.php index ce98087..19696cf 100644 --- a/src/Majora/Bundle/GeneratorBundle/Generator/ContentModifier/BehatModifier.php +++ b/src/Majora/Bundle/GeneratorBundle/Generator/ContentModifier/BehatModifier.php @@ -37,7 +37,6 @@ public function __construct(Filesystem $filesystem, LoggerInterface $logger, $en $this->resolver->setDefaults(array( 'target' => '/config/behat.yml', )); -<<<<<<< HEAD $this->resolver->setRequired(array( 'target', 'path',