diff --git a/DependencyInjection/Compiler/DiscoveryPass.php b/DependencyInjection/Compiler/DiscoveryPass.php
deleted file mode 100644
index b54e8e02..00000000
--- a/DependencyInjection/Compiler/DiscoveryPass.php
+++ /dev/null
@@ -1,63 +0,0 @@
-
- */
-final class DiscoveryPass implements CompilerPassInterface
-{
- /**
- * Fallback services and classes.
- *
- * @var array
- */
- private $services = [
- 'client' => HttpClient::class,
- 'message_factory' => MessageFactory::class,
- 'uri_factory' => UriFactory::class,
- 'stream_factory' => StreamFactory::class,
- ];
-
- /**
- * Factories by type.
- *
- * @var array
- */
- private $factoryClasses = [
- 'client' => HttpClientDiscovery::class,
- 'message_factory' => MessageFactoryDiscovery::class,
- 'uri_factory' => UriFactoryDiscovery::class,
- 'stream_factory' => StreamFactoryDiscovery::class,
- ];
-
- /**
- * {@inheritdoc}
- */
- public function process(ContainerBuilder $container)
- {
- foreach ($this->services as $service => $class) {
- $serviceId = sprintf('httplug.%s.default', $service);
-
- if (false === $container->has($serviceId)) {
- // Register and create factory for service
- $definition = $container->register($serviceId, $class);
- $definition->setFactory([$this->factoryClasses[$service], 'find']);
- $definition->addArgument($class);
- }
- }
- }
-}
diff --git a/HttplugBundle.php b/HttplugBundle.php
index b5402c52..082d32f4 100644
--- a/HttplugBundle.php
+++ b/HttplugBundle.php
@@ -2,8 +2,6 @@
namespace Http\HttplugBundle;
-use Http\HttplugBundle\DependencyInjection\Compiler\DiscoveryPass;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Bundle\Bundle;
/**
@@ -12,10 +10,4 @@
*/
class HttplugBundle extends Bundle
{
- public function build(ContainerBuilder $container)
- {
- parent::build($container);
-
- $container->addCompilerPass(new DiscoveryPass());
- }
}
diff --git a/Resources/config/services.xml b/Resources/config/services.xml
index c9b4df13..e34c8425 100644
--- a/Resources/config/services.xml
+++ b/Resources/config/services.xml
@@ -8,7 +8,30 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Tests/Unit/DependencyInjection/Compiler/DiscoveryPassTest.php b/Tests/Functional/DiscoveryTest.php
similarity index 67%
rename from Tests/Unit/DependencyInjection/Compiler/DiscoveryPassTest.php
rename to Tests/Functional/DiscoveryTest.php
index d84549f9..c016c93d 100644
--- a/Tests/Unit/DependencyInjection/Compiler/DiscoveryPassTest.php
+++ b/Tests/Functional/DiscoveryTest.php
@@ -2,45 +2,58 @@
namespace Http\HttplugBundle\Tests\Unit\DependencyInjection\Compiler;
+use Http\Client\HttpAsyncClient;
use Http\Client\HttpClient;
-use Http\HttplugBundle\DependencyInjection\Compiler\DiscoveryPass;
+use Http\HttplugBundle\DependencyInjection\HttplugExtension;
use Http\Message\MessageFactory;
use Http\Message\StreamFactory;
use Http\Message\UriFactory;
-use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractExtensionTestCase;
use Symfony\Component\DependencyInjection\Definition;
/**
* @author Márk Sági-Kazár
*/
-final class DiscoveryPassTest extends AbstractCompilerPassTestCase
+final class DiscoveryTest extends AbstractExtensionTestCase
{
- protected function registerCompilerPass(ContainerBuilder $container)
+ protected function setUp()
{
- $container->addCompilerPass(new DiscoveryPass());
+ parent::setUp();
+
+ $this->setParameter('kernel.debug', true);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function getContainerExtensions()
+ {
+ return [
+ new HttplugExtension(),
+ ];
}
public function testDiscoveryFallbacks()
{
- $this->compile();
+ $this->load();
$this->assertContainerBuilderHasService('httplug.client.default', HttpClient::class);
$this->assertContainerBuilderHasService('httplug.message_factory.default', MessageFactory::class);
$this->assertContainerBuilderHasService('httplug.uri_factory.default', UriFactory::class);
$this->assertContainerBuilderHasService('httplug.stream_factory.default', StreamFactory::class);
+ $this->assertContainerBuilderHasService('httplug.async_client.default', HttpAsyncClient::class);
}
public function testDiscoveryPartialFallbacks()
{
+ $this->load();
$this->setDefinition('httplug.client.default', new Definition('Http\Adapter\Guzzle6\Client'));
- $this->compile();
-
$this->assertContainerBuilderHasService('httplug.client.default', 'Http\Adapter\Guzzle6\Client');
$this->assertContainerBuilderHasService('httplug.message_factory.default', MessageFactory::class);
$this->assertContainerBuilderHasService('httplug.uri_factory.default', UriFactory::class);
$this->assertContainerBuilderHasService('httplug.stream_factory.default', StreamFactory::class);
+ $this->assertContainerBuilderHasService('httplug.async_client.default', HttpAsyncClient::class);
}
public function testNoDiscoveryFallbacks()
@@ -49,7 +62,8 @@ public function testNoDiscoveryFallbacks()
$this->setDefinition('httplug.message_factory.default', new Definition(MessageFactory::class));
$this->setDefinition('httplug.uri_factory.default', new Definition(UriFactory::class));
$this->setDefinition('httplug.stream_factory.default', new Definition(StreamFactory::class));
+ $this->setDefinition('httplug.async_client.default', new Definition(HttpAsyncClient::class));
- $this->compile();
+ $this->load();
}
}