Skip to content

Commit 3772554

Browse files
authored
Merge pull request #197 from php-enqueue/bundle-topic-subscriber-without-processor-name
[bundle] add tests for the case where topic subscriber does not def p…
2 parents fdb6392 + 3f95717 commit 3772554

File tree

3 files changed

+66
-0
lines changed

3 files changed

+66
-0
lines changed

Diff for: pkg/enqueue-bundle/Tests/Unit/DependencyInjection/Compiler/BuildClientRoutingPassTest.php

+25
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use Enqueue\Bundle\Tests\Unit\DependencyInjection\Compiler\Mock\ProcessorNameCommandSubscriber;
1010
use Enqueue\Bundle\Tests\Unit\DependencyInjection\Compiler\Mock\ProcessorNameTopicSubscriber;
1111
use Enqueue\Bundle\Tests\Unit\DependencyInjection\Compiler\Mock\QueueNameTopicSubscriber;
12+
use Enqueue\Bundle\Tests\Unit\DependencyInjection\Compiler\Mock\WithoutProcessorNameTopicSubscriber;
1213
use PHPUnit\Framework\TestCase;
1314
use Symfony\Component\DependencyInjection\ContainerBuilder;
1415
use Symfony\Component\DependencyInjection\Definition;
@@ -213,6 +214,30 @@ public function testShouldBuildRouteFromSubscriberIfQueueNameSpecified()
213214
$this->assertEquals($expectedRoutes, $router->getArgument(1));
214215
}
215216

217+
public function testShouldBuildRouteFromWithoutProcessorNameTopicSubscriber()
218+
{
219+
$container = $this->createContainerBuilder();
220+
221+
$processor = new Definition(WithoutProcessorNameTopicSubscriber::class);
222+
$processor->addTag('enqueue.client.processor');
223+
$container->setDefinition('processor-service-id', $processor);
224+
225+
$router = new Definition();
226+
$router->setArguments([null, null, null]);
227+
$container->setDefinition('enqueue.client.router_processor', $router);
228+
229+
$pass = new BuildClientRoutingPass();
230+
$pass->process($container);
231+
232+
$expectedRoutes = [
233+
'without-processor-name' => [
234+
['processor-service-id', 'a_queue_name'],
235+
],
236+
];
237+
238+
$this->assertEquals($expectedRoutes, $router->getArgument(1));
239+
}
240+
216241
public function testShouldThrowExceptionWhenTopicSubscriberConfigurationIsInvalid()
217242
{
218243
$container = $this->createContainerBuilder();

Diff for: pkg/enqueue-bundle/Tests/Unit/DependencyInjection/Compiler/BuildProcessorRegistryPassTest.php

+23
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use Enqueue\Bundle\Tests\Unit\DependencyInjection\Compiler\Mock\OnlyTopicNameTopicSubscriber;
1111
use Enqueue\Bundle\Tests\Unit\DependencyInjection\Compiler\Mock\ProcessorNameCommandSubscriber;
1212
use Enqueue\Bundle\Tests\Unit\DependencyInjection\Compiler\Mock\ProcessorNameTopicSubscriber;
13+
use Enqueue\Bundle\Tests\Unit\DependencyInjection\Compiler\Mock\WithoutProcessorNameTopicSubscriber;
1314
use PHPUnit\Framework\TestCase;
1415
use Symfony\Component\DependencyInjection\ContainerBuilder;
1516
use Symfony\Component\DependencyInjection\Definition;
@@ -132,6 +133,28 @@ public function testShouldBuildRouteFromSubscriberIfOnlyTopicNameSpecified()
132133
$this->assertEquals($expectedValue, $processorRegistry->getArgument(0));
133134
}
134135

136+
public function testShouldBuildRouteFromWithoutProcessorNameTopicSubscriber()
137+
{
138+
$container = $this->createContainerBuilder();
139+
140+
$processor = new Definition(WithoutProcessorNameTopicSubscriber::class);
141+
$processor->addTag('enqueue.client.processor');
142+
$container->setDefinition('processor-id', $processor);
143+
144+
$processorRegistry = new Definition();
145+
$processorRegistry->setArguments([]);
146+
$container->setDefinition('enqueue.client.processor_registry', $processorRegistry);
147+
148+
$pass = new BuildProcessorRegistryPass();
149+
$pass->process($container);
150+
151+
$expectedValue = [
152+
'processor-id' => 'processor-id',
153+
];
154+
155+
$this->assertEquals($expectedValue, $processorRegistry->getArgument(0));
156+
}
157+
135158
public function testShouldBuildRouteFromSubscriberIfProcessorNameSpecified()
136159
{
137160
$container = $this->createContainerBuilder();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
namespace Enqueue\Bundle\Tests\Unit\DependencyInjection\Compiler\Mock;
4+
5+
use Enqueue\Client\TopicSubscriberInterface;
6+
7+
class WithoutProcessorNameTopicSubscriber implements TopicSubscriberInterface
8+
{
9+
public static function getSubscribedTopics()
10+
{
11+
return [
12+
'without-processor-name' => [
13+
'queueName' => 'a_queue_name',
14+
'queueNameHardcoded' => true,
15+
],
16+
];
17+
}
18+
}

0 commit comments

Comments
 (0)