From 32d2c07571e3e956c50b115539b2cc4ed577a8b8 Mon Sep 17 00:00:00 2001 From: Nicky De Maeyer Date: Fri, 22 Nov 2019 14:53:10 +0100 Subject: [PATCH 1/2] #984 Symfony 4.4 compatibility --- pkg/enqueue/Doctrine/DoctrineConnectionFactoryFactory.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/enqueue/Doctrine/DoctrineConnectionFactoryFactory.php b/pkg/enqueue/Doctrine/DoctrineConnectionFactoryFactory.php index db8f0dd76..06150e97e 100644 --- a/pkg/enqueue/Doctrine/DoctrineConnectionFactoryFactory.php +++ b/pkg/enqueue/Doctrine/DoctrineConnectionFactoryFactory.php @@ -2,16 +2,16 @@ namespace Enqueue\Doctrine; +use Doctrine\Bundle\DoctrineBundle\Registry; use Enqueue\ConnectionFactoryFactoryInterface; use Enqueue\Dbal\ManagerRegistryConnectionFactory; use Enqueue\Dsn\Dsn; use Interop\Queue\ConnectionFactory; -use Symfony\Bridge\Doctrine\RegistryInterface; class DoctrineConnectionFactoryFactory implements ConnectionFactoryFactoryInterface { /** - * @var RegistryInterface + * @var Registry */ private $doctrine; @@ -20,7 +20,7 @@ class DoctrineConnectionFactoryFactory implements ConnectionFactoryFactoryInterf */ private $fallbackFactory; - public function __construct(RegistryInterface $doctrine, ConnectionFactoryFactoryInterface $fallbackFactory) + public function __construct(Registry $doctrine, ConnectionFactoryFactoryInterface $fallbackFactory) { $this->doctrine = $doctrine; $this->fallbackFactory = $fallbackFactory; From 85c005f404a9a42a0d2d4f6a8d5bbb25d700e7ac Mon Sep 17 00:00:00 2001 From: Markus Bachmann Date: Sat, 23 Nov 2019 15:57:53 +0100 Subject: [PATCH 2/2] Fixes #984 --- .../DoctrineConnectionFactoryFactory.php | 6 +- .../DoctrineConnectionFactoryFactoryTest.php | 67 +++++++++++++++++++ 2 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 pkg/enqueue/Tests/DoctrineConnectionFactoryFactoryTest.php diff --git a/pkg/enqueue/Doctrine/DoctrineConnectionFactoryFactory.php b/pkg/enqueue/Doctrine/DoctrineConnectionFactoryFactory.php index 06150e97e..b6e684cdd 100644 --- a/pkg/enqueue/Doctrine/DoctrineConnectionFactoryFactory.php +++ b/pkg/enqueue/Doctrine/DoctrineConnectionFactoryFactory.php @@ -2,7 +2,7 @@ namespace Enqueue\Doctrine; -use Doctrine\Bundle\DoctrineBundle\Registry; +use Doctrine\Common\Persistence\ManagerRegistry; use Enqueue\ConnectionFactoryFactoryInterface; use Enqueue\Dbal\ManagerRegistryConnectionFactory; use Enqueue\Dsn\Dsn; @@ -11,7 +11,7 @@ class DoctrineConnectionFactoryFactory implements ConnectionFactoryFactoryInterface { /** - * @var Registry + * @var ManagerRegistry */ private $doctrine; @@ -20,7 +20,7 @@ class DoctrineConnectionFactoryFactory implements ConnectionFactoryFactoryInterf */ private $fallbackFactory; - public function __construct(Registry $doctrine, ConnectionFactoryFactoryInterface $fallbackFactory) + public function __construct(ManagerRegistry $doctrine, ConnectionFactoryFactoryInterface $fallbackFactory) { $this->doctrine = $doctrine; $this->fallbackFactory = $fallbackFactory; diff --git a/pkg/enqueue/Tests/DoctrineConnectionFactoryFactoryTest.php b/pkg/enqueue/Tests/DoctrineConnectionFactoryFactoryTest.php new file mode 100644 index 000000000..5aca26dbf --- /dev/null +++ b/pkg/enqueue/Tests/DoctrineConnectionFactoryFactoryTest.php @@ -0,0 +1,67 @@ +registry = $this->prophesize(ManagerRegistry::class); + $this->fallbackFactory = $this->prophesize(ConnectionFactoryFactoryInterface::class); + + $this->factory = new DoctrineConnectionFactoryFactory($this->registry->reveal(), $this->fallbackFactory->reveal()); + } + + public function testCreateWithoutArray() + { + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessage('The config must be either array or DSN string.'); + + $this->factory->create(true); + } + + public function testCreateWithoutDsn() + { + $this->expectExceptionMessage(\InvalidArgumentException::class); + $this->expectExceptionMessage('The config must have dsn key set.'); + + $this->factory->create(['foo' => 'bar']); + } + + public function testCreateWithDoctrineSchema() + { + $this->assertInstanceOf( + ManagerRegistryConnectionFactory::class, + $this->factory->create('doctrine://localhost:3306') + ); + } + + public function testCreateFallback() + { + $this->fallbackFactory + ->create(['dsn' => 'fallback://']) + ->shouldBeCalled(); + + $this->factory->create(['dsn' => 'fallback://']); + } +}