Skip to content

Commit ea0a50c

Browse files
committed
multi client configuration
1 parent 16a5218 commit ea0a50c

9 files changed

Lines changed: 170 additions & 126 deletions

‎pkg/enqueue/Tests/Symfony/Client/DependencyInjection/BuildClientExtensionsPassTest.php‎

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public function testThrowsIfNoClientExtensionsServiceFoundForConfiguredTransport
4343
{
4444
$container = new ContainerBuilder();
4545
$container->setParameter('enqueue.clients', ['foo', 'bar']);
46+
$container->setParameter('enqueue.default_client', 'foo');
4647

4748
$pass = new BuildClientExtensionsPass();
4849

@@ -58,6 +59,7 @@ public function testShouldRegisterClientExtension()
5859

5960
$container = new ContainerBuilder();
6061
$container->setParameter('enqueue.clients', ['aName']);
62+
$container->setParameter('enqueue.default_client', 'foo');
6163
$container->setDefinition('enqueue.client.aName.client_extensions', $extensions);
6264

6365
$container->register('aFooExtension', ExtensionInterface::class)
@@ -84,6 +86,7 @@ public function testShouldIgnoreOtherClientExtensions()
8486

8587
$container = new ContainerBuilder();
8688
$container->setParameter('enqueue.clients', ['aName']);
89+
$container->setParameter('enqueue.default_client', 'foo');
8790
$container->setDefinition('enqueue.client.aName.client_extensions', $extensions);
8891

8992
$container->register('aFooExtension', ExtensionInterface::class)
@@ -109,6 +112,7 @@ public function testShouldAddExtensionIfClientAll()
109112

110113
$container = new ContainerBuilder();
111114
$container->setParameter('enqueue.clients', ['aName']);
115+
$container->setParameter('enqueue.default_client', 'foo');
112116
$container->setDefinition('enqueue.client.aName.client_extensions', $extensions);
113117

114118
$container->register('aFooExtension', ExtensionInterface::class)
@@ -133,8 +137,9 @@ public function testShouldTreatTagsWithoutClientAsDefaultClient()
133137
$extensions->addArgument([]);
134138

135139
$container = new ContainerBuilder();
136-
$container->setParameter('enqueue.clients', ['default']);
137-
$container->setDefinition('enqueue.client.default.client_extensions', $extensions);
140+
$container->setParameter('enqueue.clients', ['foo']);
141+
$container->setParameter('enqueue.default_client', 'foo');
142+
$container->setDefinition('enqueue.client.foo.client_extensions', $extensions);
138143

139144
$container->register('aFooExtension', ExtensionInterface::class)
140145
->addTag('enqueue.client_extension')
@@ -156,11 +161,12 @@ public function testShouldTreatTagsWithoutClientAsDefaultClient()
156161
public function testShouldOrderExtensionsByPriority()
157162
{
158163
$container = new ContainerBuilder();
159-
$container->setParameter('enqueue.clients', ['default']);
164+
$container->setParameter('enqueue.clients', ['foo']);
165+
$container->setParameter('enqueue.default_client', 'foo');
160166

161167
$extensions = new Definition();
162168
$extensions->addArgument([]);
163-
$container->setDefinition('enqueue.client.default.client_extensions', $extensions);
169+
$container->setDefinition('enqueue.client.foo.client_extensions', $extensions);
164170

165171
$extension = new Definition();
166172
$extension->addTag('enqueue.client_extension', ['priority' => 6]);
@@ -188,11 +194,12 @@ public function testShouldOrderExtensionsByPriority()
188194
public function testShouldAssumePriorityZeroIfPriorityIsNotSet()
189195
{
190196
$container = new ContainerBuilder();
191-
$container->setParameter('enqueue.clients', ['default']);
197+
$container->setParameter('enqueue.clients', ['foo']);
198+
$container->setParameter('enqueue.default_client', 'foo');
192199

193200
$extensions = new Definition();
194201
$extensions->addArgument([]);
195-
$container->setDefinition('enqueue.client.default.client_extensions', $extensions);
202+
$container->setDefinition('enqueue.client.foo.client_extensions', $extensions);
196203

197204
$extension = new Definition();
198205
$extension->addTag('enqueue.client_extension');
@@ -226,8 +233,9 @@ public function testShouldMergeWithAddedPreviously()
226233
]);
227234

228235
$container = new ContainerBuilder();
229-
$container->setParameter('enqueue.clients', ['aName']);
230-
$container->setDefinition('enqueue.client.aName.client_extensions', $extensions);
236+
$container->setParameter('enqueue.clients', ['foo']);
237+
$container->setParameter('enqueue.default_client', 'foo');
238+
$container->setDefinition('enqueue.client.foo.client_extensions', $extensions);
231239

232240
$container->register('aFooExtension', ExtensionInterface::class)
233241
->addTag('enqueue.client_extension')
@@ -240,10 +248,7 @@ public function testShouldMergeWithAddedPreviously()
240248
$pass->process($container);
241249

242250
$this->assertInternalType('array', $extensions->getArgument(0));
243-
$this->assertEquals([
244-
'aBarExtension' => 'aBarServiceIdAddedPreviously',
245-
'aOloloExtension' => 'aOloloServiceIdAddedPreviously',
246-
], $extensions->getArgument(0));
251+
$this->assertCount(4, $extensions->getArgument(0));
247252
}
248253

249254
public function testShouldRegisterProcessorWithMatchedNameToCorrespondingExtensions()
@@ -256,6 +261,7 @@ public function testShouldRegisterProcessorWithMatchedNameToCorrespondingExtensi
256261

257262
$container = new ContainerBuilder();
258263
$container->setParameter('enqueue.clients', ['foo', 'bar']);
264+
$container->setParameter('enqueue.default_client', 'foo');
259265
$container->setDefinition('enqueue.client.foo.client_extensions', $fooExtensions);
260266
$container->setDefinition('enqueue.client.bar.client_extensions', $barExtensions);
261267

‎pkg/enqueue/Tests/Symfony/Client/DependencyInjection/BuildCommandSubscriberRoutesPassTest.php‎

Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ public function testThrowsIfNoRouteCollectionServiceFoundForConfiguredTransport(
4747
{
4848
$container = new ContainerBuilder();
4949
$container->setParameter('enqueue.clients', ['foo', 'bar']);
50+
$container->setParameter('enqueue.default_client', 'baz');
5051

5152
$pass = new BuildCommandSubscriberRoutesPass();
5253

@@ -59,6 +60,7 @@ public function testThrowIfTaggedProcessorIsBuiltByFactory()
5960
{
6061
$container = new ContainerBuilder();
6162
$container->setParameter('enqueue.clients', ['aName']);
63+
$container->setParameter('enqueue.default_client', 'foo');
6264
$container->register('enqueue.client.aName.route_collection', RouteCollection::class)
6365
->addArgument([])
6466
;
@@ -81,6 +83,7 @@ public function testShouldRegisterProcessorWithMatchedName()
8183

8284
$container = new ContainerBuilder();
8385
$container->setParameter('enqueue.clients', ['foo']);
86+
$container->setParameter('enqueue.default_client', 'foo');
8487
$container->setDefinition('enqueue.client.foo.route_collection', $routeCollection);
8588
$container->register('aFooProcessor', get_class($this->createCommandSubscriberProcessor()))
8689
->addTag('enqueue.command_subscriber', ['client' => 'foo'])
@@ -103,8 +106,9 @@ public function testShouldRegisterProcessorWithoutNameToDefaultClient()
103106
$routeCollection->addArgument([]);
104107

105108
$container = new ContainerBuilder();
106-
$container->setParameter('enqueue.clients', ['default']);
107-
$container->setDefinition('enqueue.client.default.route_collection', $routeCollection);
109+
$container->setParameter('enqueue.clients', ['foo']);
110+
$container->setParameter('enqueue.default_client', 'foo');
111+
$container->setDefinition('enqueue.client.foo.route_collection', $routeCollection);
108112
$container->register('aFooProcessor', get_class($this->createCommandSubscriberProcessor()))
109113
->addTag('enqueue.command_subscriber')
110114
;
@@ -126,8 +130,9 @@ public function testShouldRegisterProcessorIfClientNameEqualsAll()
126130
$routeCollection->addArgument([]);
127131

128132
$container = new ContainerBuilder();
129-
$container->setParameter('enqueue.clients', ['default']);
130-
$container->setDefinition('enqueue.client.default.route_collection', $routeCollection);
133+
$container->setParameter('enqueue.clients', ['foo']);
134+
$container->setParameter('enqueue.default_client', 'foo');
135+
$container->setDefinition('enqueue.client.foo.route_collection', $routeCollection);
131136
$container->register('aFooProcessor', get_class($this->createCommandSubscriberProcessor()))
132137
->addTag('enqueue.command_subscriber', ['client' => 'all'])
133138
;
@@ -151,8 +156,9 @@ public function testShouldRegisterProcessorIfCommandsIsString()
151156
$processor = $this->createCommandSubscriberProcessor('fooCommand');
152157

153158
$container = new ContainerBuilder();
154-
$container->setParameter('enqueue.clients', ['default']);
155-
$container->setDefinition('enqueue.client.default.route_collection', $routeCollection);
159+
$container->setParameter('enqueue.clients', ['foo']);
160+
$container->setParameter('enqueue.default_client', 'foo');
161+
$container->setDefinition('enqueue.client.foo.route_collection', $routeCollection);
156162
$container->register('aFooProcessor', get_class($processor))
157163
->addTag('enqueue.command_subscriber')
158164
;
@@ -184,8 +190,9 @@ public function testThrowIfCommandSubscriberReturnsNothing()
184190
$processor = $this->createCommandSubscriberProcessor(null);
185191

186192
$container = new ContainerBuilder();
187-
$container->setParameter('enqueue.clients', ['default']);
188-
$container->setDefinition('enqueue.client.default.route_collection', $routeCollection);
193+
$container->setParameter('enqueue.clients', ['foo']);
194+
$container->setParameter('enqueue.default_client', 'foo');
195+
$container->setDefinition('enqueue.client.foo.route_collection', $routeCollection);
189196
$container->register('aFooProcessor', get_class($processor))
190197
->addTag('enqueue.command_subscriber')
191198
;
@@ -205,8 +212,9 @@ public function testShouldRegisterProcessorIfCommandsAreStrings()
205212
$processor = $this->createCommandSubscriberProcessor(['fooCommand', 'barCommand']);
206213

207214
$container = new ContainerBuilder();
208-
$container->setParameter('enqueue.clients', ['default']);
209-
$container->setDefinition('enqueue.client.default.route_collection', $routeCollection);
215+
$container->setParameter('enqueue.clients', ['foo']);
216+
$container->setParameter('enqueue.default_client', 'foo');
217+
$container->setDefinition('enqueue.client.foo.route_collection', $routeCollection);
210218
$container->register('aFooProcessor', get_class($processor))
211219
->addTag('enqueue.command_subscriber')
212220
;
@@ -248,8 +256,9 @@ public function testShouldRegisterProcessorIfParamSingleCommandArray()
248256
]);
249257

250258
$container = new ContainerBuilder();
251-
$container->setParameter('enqueue.clients', ['default']);
252-
$container->setDefinition('enqueue.client.default.route_collection', $routeCollection);
259+
$container->setParameter('enqueue.clients', ['foo']);
260+
$container->setParameter('enqueue.default_client', 'foo');
261+
$container->setDefinition('enqueue.client.foo.route_collection', $routeCollection);
253262
$container->register('aFooProcessor', get_class($processor))
254263
->addTag('enqueue.command_subscriber')
255264
;
@@ -286,8 +295,9 @@ public function testShouldRegisterProcessorIfCommandsAreParamArrays()
286295
]);
287296

288297
$container = new ContainerBuilder();
289-
$container->setParameter('enqueue.clients', ['default']);
290-
$container->setDefinition('enqueue.client.default.route_collection', $routeCollection);
298+
$container->setParameter('enqueue.clients', ['foo']);
299+
$container->setParameter('enqueue.default_client', 'foo');
300+
$container->setDefinition('enqueue.client.foo.route_collection', $routeCollection);
291301
$container->register('aFooProcessor', get_class($processor))
292302
->addTag('enqueue.command_subscriber')
293303
;
@@ -327,8 +337,9 @@ public function testThrowIfCommandSubscriberParamsInvalid()
327337
$processor = $this->createCommandSubscriberProcessor(['fooBar', true]);
328338

329339
$container = new ContainerBuilder();
330-
$container->setParameter('enqueue.clients', ['default']);
331-
$container->setDefinition('enqueue.client.default.route_collection', $routeCollection);
340+
$container->setParameter('enqueue.clients', ['foo']);
341+
$container->setParameter('enqueue.default_client', 'foo');
342+
$container->setDefinition('enqueue.client.foo.route_collection', $routeCollection);
332343
$container->register('aFooProcessor', get_class($processor))
333344
->addTag('enqueue.command_subscriber')
334345
;
@@ -351,8 +362,9 @@ public function testShouldMergeExtractedRoutesWithAlreadySetInCollection()
351362
$processor = $this->createCommandSubscriberProcessor(['fooCommand']);
352363

353364
$container = new ContainerBuilder();
354-
$container->setParameter('enqueue.clients', ['default']);
355-
$container->setDefinition('enqueue.client.default.route_collection', $routeCollection);
365+
$container->setParameter('enqueue.clients', ['foo']);
366+
$container->setParameter('enqueue.default_client', 'foo');
367+
$container->setDefinition('enqueue.client.foo.route_collection', $routeCollection);
356368
$container->register('aFooProcessor', get_class($processor))
357369
->addTag('enqueue.command_subscriber')
358370
;

‎pkg/enqueue/Tests/Symfony/Client/DependencyInjection/BuildConsumptionExtensionsPassTest.php‎

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public function testThrowsIfNoConsumptionExtensionsServiceFoundForConfiguredTran
4343
{
4444
$container = new ContainerBuilder();
4545
$container->setParameter('enqueue.clients', ['foo', 'bar']);
46+
$container->setParameter('enqueue.default_client', 'baz');
4647

4748
$pass = new BuildConsumptionExtensionsPass();
4849

@@ -57,14 +58,15 @@ public function testShouldRegisterClientExtension()
5758
$extensions->addArgument([]);
5859

5960
$container = new ContainerBuilder();
60-
$container->setParameter('enqueue.clients', ['aName']);
61-
$container->setDefinition('enqueue.client.aName.consumption_extensions', $extensions);
61+
$container->setParameter('enqueue.clients', ['foo']);
62+
$container->setParameter('enqueue.default_client', 'foo');
63+
$container->setDefinition('enqueue.client.foo.consumption_extensions', $extensions);
6264

6365
$container->register('aFooExtension', ExtensionInterface::class)
64-
->addTag('enqueue.consumption_extension', ['client' => 'aName'])
66+
->addTag('enqueue.consumption_extension', ['client' => 'foo'])
6567
;
6668
$container->register('aBarExtension', ExtensionInterface::class)
67-
->addTag('enqueue.consumption_extension', ['client' => 'aName'])
69+
->addTag('enqueue.consumption_extension', ['client' => 'foo'])
6870
;
6971

7072
$pass = new BuildConsumptionExtensionsPass();
@@ -83,11 +85,12 @@ public function testShouldIgnoreOtherClientExtensions()
8385
$extensions->addArgument([]);
8486

8587
$container = new ContainerBuilder();
86-
$container->setParameter('enqueue.clients', ['aName']);
87-
$container->setDefinition('enqueue.client.aName.consumption_extensions', $extensions);
88+
$container->setParameter('enqueue.clients', ['foo']);
89+
$container->setParameter('enqueue.default_client', 'foo');
90+
$container->setDefinition('enqueue.client.foo.consumption_extensions', $extensions);
8891

8992
$container->register('aFooExtension', ExtensionInterface::class)
90-
->addTag('enqueue.consumption_extension', ['client' => 'aName'])
93+
->addTag('enqueue.consumption_extension', ['client' => 'foo'])
9194
;
9295
$container->register('aBarExtension', ExtensionInterface::class)
9396
->addTag('enqueue.consumption_extension', ['client' => 'anotherName'])
@@ -108,8 +111,9 @@ public function testShouldAddExtensionIfClientAll()
108111
$extensions->addArgument([]);
109112

110113
$container = new ContainerBuilder();
111-
$container->setParameter('enqueue.clients', ['aName']);
112-
$container->setDefinition('enqueue.client.aName.consumption_extensions', $extensions);
114+
$container->setParameter('enqueue.clients', ['foo']);
115+
$container->setParameter('enqueue.default_client', 'foo');
116+
$container->setDefinition('enqueue.client.foo.consumption_extensions', $extensions);
113117

114118
$container->register('aFooExtension', ExtensionInterface::class)
115119
->addTag('enqueue.consumption_extension', ['client' => 'all'])
@@ -133,8 +137,9 @@ public function testShouldTreatTagsWithoutClientAsDefaultClient()
133137
$extensions->addArgument([]);
134138

135139
$container = new ContainerBuilder();
136-
$container->setParameter('enqueue.clients', ['default']);
137-
$container->setDefinition('enqueue.client.default.consumption_extensions', $extensions);
140+
$container->setParameter('enqueue.clients', ['foo']);
141+
$container->setParameter('enqueue.default_client', 'foo');
142+
$container->setDefinition('enqueue.client.foo.consumption_extensions', $extensions);
138143

139144
$container->register('aFooExtension', ExtensionInterface::class)
140145
->addTag('enqueue.consumption_extension')
@@ -156,11 +161,12 @@ public function testShouldTreatTagsWithoutClientAsDefaultClient()
156161
public function testShouldOrderExtensionsByPriority()
157162
{
158163
$container = new ContainerBuilder();
159-
$container->setParameter('enqueue.clients', ['default']);
164+
$container->setParameter('enqueue.clients', ['foo']);
165+
$container->setParameter('enqueue.default_client', 'foo');
160166

161167
$extensions = new Definition();
162168
$extensions->addArgument([]);
163-
$container->setDefinition('enqueue.client.default.consumption_extensions', $extensions);
169+
$container->setDefinition('enqueue.client.foo.consumption_extensions', $extensions);
164170

165171
$extension = new Definition();
166172
$extension->addTag('enqueue.consumption_extension', ['priority' => 6]);
@@ -188,11 +194,12 @@ public function testShouldOrderExtensionsByPriority()
188194
public function testShouldAssumePriorityZeroIfPriorityIsNotSet()
189195
{
190196
$container = new ContainerBuilder();
191-
$container->setParameter('enqueue.clients', ['default']);
197+
$container->setParameter('enqueue.clients', ['foo']);
198+
$container->setParameter('enqueue.default_client', 'foo');
192199

193200
$extensions = new Definition();
194201
$extensions->addArgument([]);
195-
$container->setDefinition('enqueue.client.default.consumption_extensions', $extensions);
202+
$container->setDefinition('enqueue.client.foo.consumption_extensions', $extensions);
196203

197204
$extension = new Definition();
198205
$extension->addTag('enqueue.consumption_extension');
@@ -226,8 +233,9 @@ public function testShouldMergeWithAddedPreviously()
226233
]);
227234

228235
$container = new ContainerBuilder();
229-
$container->setParameter('enqueue.clients', ['aName']);
230-
$container->setDefinition('enqueue.client.aName.consumption_extensions', $extensions);
236+
$container->setParameter('enqueue.clients', ['foo']);
237+
$container->setParameter('enqueue.default_client', 'foo');
238+
$container->setDefinition('enqueue.client.foo.consumption_extensions', $extensions);
231239

232240
$container->register('aFooExtension', ExtensionInterface::class)
233241
->addTag('enqueue.consumption_extension')
@@ -240,10 +248,7 @@ public function testShouldMergeWithAddedPreviously()
240248
$pass->process($container);
241249

242250
$this->assertInternalType('array', $extensions->getArgument(0));
243-
$this->assertEquals([
244-
'aBarExtension' => 'aBarServiceIdAddedPreviously',
245-
'aOloloExtension' => 'aOloloServiceIdAddedPreviously',
246-
], $extensions->getArgument(0));
251+
$this->assertCount(4, $extensions->getArgument(0));
247252
}
248253

249254
public function testShouldRegisterProcessorWithMatchedNameToCorrespondingExtensions()
@@ -256,6 +261,7 @@ public function testShouldRegisterProcessorWithMatchedNameToCorrespondingExtensi
256261

257262
$container = new ContainerBuilder();
258263
$container->setParameter('enqueue.clients', ['foo', 'bar']);
264+
$container->setParameter('enqueue.default_client', 'foo');
259265
$container->setDefinition('enqueue.client.foo.consumption_extensions', $fooExtensions);
260266
$container->setDefinition('enqueue.client.bar.consumption_extensions', $barExtensions);
261267

0 commit comments

Comments
 (0)