Merge pull request #7 from pamil/cross-container-extension
Integrate with CrossContainerExtension
This commit is contained in:
@@ -19,11 +19,13 @@
|
|||||||
"behat/mink": "^1.7",
|
"behat/mink": "^1.7",
|
||||||
"behat/mink-browserkit-driver": "^1.3",
|
"behat/mink-browserkit-driver": "^1.3",
|
||||||
"behat/mink-extension": "^2.2",
|
"behat/mink-extension": "^2.2",
|
||||||
|
"friends-of-behat/cross-container-extension": "^0.1",
|
||||||
"friends-of-behat/test-context": "^0.3",
|
"friends-of-behat/test-context": "^0.3",
|
||||||
"symfony/framework-bundle": "^2.7|^3.0"
|
"symfony/framework-bundle": "^2.7|^3.0"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"behat/mink-browserkit-driver": "^1.3"
|
"behat/mink-browserkit-driver": "^1.3",
|
||||||
|
"friends-of-behat/cross-container-extension": "^0.1"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": { "FriendsOfBehat\\SymfonyExtension\\": "src/" }
|
"psr-4": { "FriendsOfBehat\\SymfonyExtension\\": "src/" }
|
||||||
|
|||||||
@@ -28,3 +28,31 @@ Feature: Not crashing Behat
|
|||||||
And a feature file with passing scenario
|
And a feature file with passing scenario
|
||||||
When I run Behat
|
When I run Behat
|
||||||
Then it should pass
|
Then it should pass
|
||||||
|
|
||||||
|
Scenario: Not crashing Behat with CrossContainerExtension
|
||||||
|
Given a Behat configuration containing:
|
||||||
|
"""
|
||||||
|
default:
|
||||||
|
extensions:
|
||||||
|
FriendsOfBehat\SymfonyExtension:
|
||||||
|
kernel:
|
||||||
|
bootstrap: ~
|
||||||
|
|
||||||
|
FriendsOfBehat\CrossContainerExtension: ~
|
||||||
|
"""
|
||||||
|
And a file "app/AppKernel.php" containing:
|
||||||
|
"""
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Symfony\Component\HttpKernel\Kernel;
|
||||||
|
use Symfony\Component\Config\Loader\LoaderInterface;
|
||||||
|
|
||||||
|
class AppKernel extends Kernel
|
||||||
|
{
|
||||||
|
public function registerBundles() { return []; }
|
||||||
|
public function registerContainerConfiguration(LoaderInterface $loader) {}
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
And a feature file with passing scenario
|
||||||
|
When I run Behat
|
||||||
|
Then it should pass
|
||||||
|
|||||||
@@ -15,9 +15,13 @@ use Behat\MinkExtension\ServiceContainer\MinkExtension;
|
|||||||
use Behat\Testwork\EventDispatcher\ServiceContainer\EventDispatcherExtension;
|
use Behat\Testwork\EventDispatcher\ServiceContainer\EventDispatcherExtension;
|
||||||
use Behat\Testwork\ServiceContainer\Extension;
|
use Behat\Testwork\ServiceContainer\Extension;
|
||||||
use Behat\Testwork\ServiceContainer\ExtensionManager;
|
use Behat\Testwork\ServiceContainer\ExtensionManager;
|
||||||
|
use FriendsOfBehat\CrossContainerExtension\CrossContainerProcessor;
|
||||||
|
use FriendsOfBehat\CrossContainerExtension\KernelBasedContainerAccessor;
|
||||||
|
use FriendsOfBehat\CrossContainerExtension\ServiceContainer\CrossContainerExtension;
|
||||||
use FriendsOfBehat\SymfonyExtension\Driver\Factory\SymfonyDriverFactory;
|
use FriendsOfBehat\SymfonyExtension\Driver\Factory\SymfonyDriverFactory;
|
||||||
use FriendsOfBehat\SymfonyExtension\Listener\KernelRebooter;
|
use FriendsOfBehat\SymfonyExtension\Listener\KernelRebooter;
|
||||||
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
|
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
|
||||||
|
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
|
||||||
use Symfony\Component\DependencyInjection\Container;
|
use Symfony\Component\DependencyInjection\Container;
|
||||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||||
use Symfony\Component\DependencyInjection\Definition;
|
use Symfony\Component\DependencyInjection\Definition;
|
||||||
@@ -55,6 +59,11 @@ final class SymfonyExtension implements Extension
|
|||||||
*/
|
*/
|
||||||
const SHARED_KERNEL_CONTAINER_ID = 'sylius_symfony_extension.shared_kernel.container';
|
const SHARED_KERNEL_CONTAINER_ID = 'sylius_symfony_extension.shared_kernel.container';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var CrossContainerProcessor|null
|
||||||
|
*/
|
||||||
|
private $crossContainerProcessor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
@@ -69,6 +78,7 @@ final class SymfonyExtension implements Extension
|
|||||||
public function initialize(ExtensionManager $extensionManager)
|
public function initialize(ExtensionManager $extensionManager)
|
||||||
{
|
{
|
||||||
$this->registerSymfonyDriverFactory($extensionManager);
|
$this->registerSymfonyDriverFactory($extensionManager);
|
||||||
|
$this->initializeCrossContainerProcessor($extensionManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -104,6 +114,7 @@ final class SymfonyExtension implements Extension
|
|||||||
$this->loadSharedKernelContainer($container);
|
$this->loadSharedKernelContainer($container);
|
||||||
|
|
||||||
$this->loadKernelRebooter($container);
|
$this->loadKernelRebooter($container);
|
||||||
|
$this->declareSymfonyContainers($container);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -185,6 +196,36 @@ final class SymfonyExtension implements Extension
|
|||||||
$container->setDefinition(self::KERNEL_ID . '.rebooter', $definition);
|
$container->setDefinition(self::KERNEL_ID . '.rebooter', $definition);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param ContainerBuilder $container
|
||||||
|
*/
|
||||||
|
private function declareSymfonyContainers(ContainerBuilder $container)
|
||||||
|
{
|
||||||
|
if (null !== $this->crossContainerProcessor) {
|
||||||
|
$this->crossContainerProcessor->addContainerAccessor(
|
||||||
|
'symfony',
|
||||||
|
new KernelBasedContainerAccessor($container->get(self::KERNEL_ID))
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->crossContainerProcessor->addContainerAccessor(
|
||||||
|
'symfony',
|
||||||
|
new KernelBasedContainerAccessor($container->get(self::SHARED_KERNEL_ID))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param ExtensionManager $extensionManager
|
||||||
|
*/
|
||||||
|
private function initializeCrossContainerProcessor(ExtensionManager $extensionManager)
|
||||||
|
{
|
||||||
|
/** @var CrossContainerExtension $extension */
|
||||||
|
$extension = $extensionManager->getExtension('fob_cross_container');
|
||||||
|
if (null !== $extension) {
|
||||||
|
$this->crossContainerProcessor = $extension->getCrossContainerProcessor();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param ExtensionManager $extensionManager
|
* @param ExtensionManager $extensionManager
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user