Skip to content

Commit 5421a64

Browse files
committed
[amqp] One single transport factory for all supported amqp implementations.
1 parent b9b85b7 commit 5421a64

File tree

3 files changed

+16
-89
lines changed

3 files changed

+16
-89
lines changed

EnqueueBundle.php

+2-17
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22

33
namespace Enqueue\Bundle;
44

5-
use Enqueue\AmqpBunny\AmqpConnectionFactory as AmqpBunnyConnectionFactory;
6-
use Enqueue\AmqpExt\AmqpConnectionFactory as AmqpExtConnectionFactory;
7-
use Enqueue\AmqpLib\AmqpConnectionFactory as AmqpLibConnectionFactory;
85
use Enqueue\AsyncEventDispatcher\DependencyInjection\AsyncEventsPass;
96
use Enqueue\AsyncEventDispatcher\DependencyInjection\AsyncTransformersPass;
107
use Enqueue\Bundle\DependencyInjection\Compiler\BuildClientExtensionsPass;
@@ -55,15 +52,8 @@ public function build(ContainerBuilder $container)
5552
$extension->addTransportFactory(new RabbitMqStompTransportFactory());
5653
}
5754

58-
if (class_exists(AmqpExtConnectionFactory::class)) {
59-
$extension->addTransportFactory(new AmqpTransportFactory(AmqpExtConnectionFactory::class, 'amqp_ext'));
60-
$extension->addTransportFactory(new RabbitMqAmqpTransportFactory(AmqpExtConnectionFactory::class, 'rabbitmq_amqp_ext'));
61-
}
62-
63-
if (class_exists(AmqpLibConnectionFactory::class)) {
64-
$extension->addTransportFactory(new AmqpTransportFactory(AmqpLibConnectionFactory::class, 'amqp_lib'));
65-
$extension->addTransportFactory(new RabbitMqAmqpTransportFactory(AmqpLibConnectionFactory::class, 'rabbitmq_amqp_lib'));
66-
}
55+
$extension->addTransportFactory(new AmqpTransportFactory('amqp'));
56+
$extension->addTransportFactory(new RabbitMqAmqpTransportFactory('rabbitmq_amqp'));
6757

6858
if (class_exists(FsConnectionFactory::class)) {
6959
$extension->addTransportFactory(new FsTransportFactory());
@@ -81,11 +71,6 @@ public function build(ContainerBuilder $container)
8171
$extension->addTransportFactory(new SqsTransportFactory());
8272
}
8373

84-
if (class_exists(AmqpBunnyConnectionFactory::class)) {
85-
$extension->addTransportFactory(new AmqpTransportFactory(AmqpBunnyConnectionFactory::class, 'amqp_bunny'));
86-
$extension->addTransportFactory(new RabbitMqAmqpTransportFactory(AmqpBunnyConnectionFactory::class, 'rabbitmq_amqp_bunny'));
87-
}
88-
8974
$container->addCompilerPass(new AsyncEventsPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION, 100);
9075
$container->addCompilerPass(new AsyncTransformersPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION, 100);
9176
}

Tests/Functional/UseCasesTest.php

+6-5
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,11 @@ public function setUp()
2323

2424
public function provideEnqueueConfigs()
2525
{
26-
yield 'amqp_ext' => [[
26+
yield 'amqp' => [[
2727
'transport' => [
28-
'default' => 'amqp_ext',
29-
'amqp_ext' => [
28+
'default' => 'amqp',
29+
'amqp' => [
30+
'driver' => 'ext',
3031
'host' => getenv('SYMFONY__RABBITMQ__HOST'),
3132
'port' => getenv('SYMFONY__RABBITMQ__AMQP__PORT'),
3233
'user' => getenv('SYMFONY__RABBITMQ__USER'),
@@ -39,8 +40,8 @@ public function provideEnqueueConfigs()
3940

4041
yield 'amqp_dsn' => [[
4142
'transport' => [
42-
'default' => 'amqp_ext',
43-
'amqp_ext' => getenv('AMQP_DSN'),
43+
'default' => 'amqp',
44+
'amqp' => getenv('AMQP_DSN'),
4445
],
4546
]];
4647

Tests/Unit/EnqueueBundleTest.php

+8-67
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22

33
namespace Enqueue\Bundle\Tests\Unit;
44

5-
use Enqueue\AmqpBunny\AmqpConnectionFactory as AmqpBunnyConnectionFactory;
6-
use Enqueue\AmqpExt\AmqpConnectionFactory as AmqpExtConnectionFactory;
7-
use Enqueue\AmqpLib\AmqpConnectionFactory as AmqpLibConnectionFactory;
85
use Enqueue\Bundle\DependencyInjection\Compiler\BuildClientExtensionsPass;
96
use Enqueue\Bundle\DependencyInjection\Compiler\BuildClientRoutingPass;
107
use Enqueue\Bundle\DependencyInjection\Compiler\BuildConsumptionExtensionsPass;
@@ -113,7 +110,7 @@ public function testShouldRegisterStompAndRabbitMqStompTransportFactories()
113110
$bundle->build($container);
114111
}
115112

116-
public function testShouldRegisterAmqpExtAndRabbitMqAmqpExtTransportFactories()
113+
public function testShouldRegisterAmqpAndRabbitMqAmqpTransportFactories()
117114
{
118115
$extensionMock = $this->createEnqueueExtensionMock();
119116

@@ -125,43 +122,15 @@ public function testShouldRegisterAmqpExtAndRabbitMqAmqpExtTransportFactories()
125122
->method('addTransportFactory')
126123
->with($this->isInstanceOf(AmqpTransportFactory::class))
127124
->willReturnCallback(function (AmqpTransportFactory $factory) {
128-
$this->assertSame(AmqpExtConnectionFactory::class, $factory->getAmqpConnectionFactoryClass());
125+
$this->assertSame('amqp', $factory->getName());
129126
})
130127
;
131128
$extensionMock
132129
->expects($this->at(3))
133130
->method('addTransportFactory')
134131
->with($this->isInstanceOf(RabbitMqAmqpTransportFactory::class))
135-
->willReturnCallback(function (AmqpTransportFactory $factory) {
136-
$this->assertSame(AmqpExtConnectionFactory::class, $factory->getAmqpConnectionFactoryClass());
137-
})
138-
;
139-
140-
$bundle = new EnqueueBundle();
141-
$bundle->build($container);
142-
}
143-
144-
public function testShouldRegisterAmqpLibAndRabbitMqAmqpLibTransportFactories()
145-
{
146-
$extensionMock = $this->createEnqueueExtensionMock();
147-
148-
$container = new ContainerBuilder();
149-
$container->registerExtension($extensionMock);
150-
151-
$extensionMock
152-
->expects($this->at(4))
153-
->method('addTransportFactory')
154-
->with($this->isInstanceOf(AmqpTransportFactory::class))
155-
->willReturnCallback(function (AmqpTransportFactory $factory) {
156-
$this->assertSame(AmqpLibConnectionFactory::class, $factory->getAmqpConnectionFactoryClass());
157-
})
158-
;
159-
$extensionMock
160-
->expects($this->at(5))
161-
->method('addTransportFactory')
162-
->with($this->isInstanceOf(RabbitMqAmqpTransportFactory::class))
163-
->willReturnCallback(function (AmqpTransportFactory $factory) {
164-
$this->assertSame(AmqpLibConnectionFactory::class, $factory->getAmqpConnectionFactoryClass());
132+
->willReturnCallback(function (RabbitMqAmqpTransportFactory $factory) {
133+
$this->assertSame('rabbitmq_amqp', $factory->getName());
165134
})
166135
;
167136

@@ -177,7 +146,7 @@ public function testShouldRegisterFSTransportFactory()
177146
$container->registerExtension($extensionMock);
178147

179148
$extensionMock
180-
->expects($this->at(6))
149+
->expects($this->at(4))
181150
->method('addTransportFactory')
182151
->with($this->isInstanceOf(FsTransportFactory::class))
183152
;
@@ -194,7 +163,7 @@ public function testShouldRegisterRedisTransportFactory()
194163
$container->registerExtension($extensionMock);
195164

196165
$extensionMock
197-
->expects($this->at(7))
166+
->expects($this->at(5))
198167
->method('addTransportFactory')
199168
->with($this->isInstanceOf(RedisTransportFactory::class))
200169
;
@@ -211,7 +180,7 @@ public function testShouldRegisterDbalTransportFactory()
211180
$container->registerExtension($extensionMock);
212181

213182
$extensionMock
214-
->expects($this->at(8))
183+
->expects($this->at(6))
215184
->method('addTransportFactory')
216185
->with($this->isInstanceOf(DbalTransportFactory::class))
217186
;
@@ -228,7 +197,7 @@ public function testShouldRegisterSqsTransportFactory()
228197
$container->registerExtension($extensionMock);
229198

230199
$extensionMock
231-
->expects($this->at(9))
200+
->expects($this->at(7))
232201
->method('addTransportFactory')
233202
->with($this->isInstanceOf(SqsTransportFactory::class))
234203
;
@@ -237,34 +206,6 @@ public function testShouldRegisterSqsTransportFactory()
237206
$bundle->build($container);
238207
}
239208

240-
public function testShouldRegisterAmqpBunnyTransportFactory()
241-
{
242-
$extensionMock = $this->createEnqueueExtensionMock();
243-
244-
$container = new ContainerBuilder();
245-
$container->registerExtension($extensionMock);
246-
247-
$extensionMock
248-
->expects($this->at(10))
249-
->method('addTransportFactory')
250-
->with($this->isInstanceOf(AmqpTransportFactory::class))
251-
->willReturnCallback(function (AmqpTransportFactory $factory) {
252-
$this->assertSame(AmqpBunnyConnectionFactory::class, $factory->getAmqpConnectionFactoryClass());
253-
})
254-
;
255-
$extensionMock
256-
->expects($this->at(11))
257-
->method('addTransportFactory')
258-
->with($this->isInstanceOf(RabbitMqAmqpTransportFactory::class))
259-
->willReturnCallback(function (AmqpTransportFactory $factory) {
260-
$this->assertSame(AmqpBunnyConnectionFactory::class, $factory->getAmqpConnectionFactoryClass());
261-
})
262-
;
263-
264-
$bundle = new EnqueueBundle();
265-
$bundle->build($container);
266-
}
267-
268209
/**
269210
* @return \PHPUnit_Framework_MockObject_MockObject|EnqueueExtension
270211
*/

0 commit comments

Comments
 (0)