From ba6248546aec97a705002915b116a21d46e90acd Mon Sep 17 00:00:00 2001 From: Samuel ROZE Date: Sun, 2 Sep 2018 17:33:01 +0100 Subject: [PATCH] Ensure the tests and implementation matches the merged #28190 PR --- .../DependencyInjection/MessengerPass.php | 14 +++++++++++--- .../DependencyInjection/MessengerPassTest.php | 4 +++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/Messenger/DependencyInjection/MessengerPass.php b/src/Symfony/Component/Messenger/DependencyInjection/MessengerPass.php index 8c0da78652..1652ed015f 100644 --- a/src/Symfony/Component/Messenger/DependencyInjection/MessengerPass.php +++ b/src/Symfony/Component/Messenger/DependencyInjection/MessengerPass.php @@ -69,7 +69,7 @@ class MessengerPass implements CompilerPassInterface } } - $this->registerReceivers($container); + $this->registerReceivers($container, $busIds); $this->registerSenders($container); $this->registerHandlers($container, $busIds); } @@ -232,7 +232,7 @@ class MessengerPass implements CompilerPassInterface return array((string) $parameters[0]->getType()); } - private function registerReceivers(ContainerBuilder $container) + private function registerReceivers(ContainerBuilder $container, array $busIds) { $receiverMapping = array(); @@ -256,7 +256,15 @@ class MessengerPass implements CompilerPassInterface foreach ($receiverMapping as $name => $reference) { $receiverNames[(string) $reference] = $name; } - $container->getDefinition('console.command.messenger_consume_messages')->replaceArgument(3, array_values($receiverNames)); + $buses = array(); + foreach ($busIds as $busId) { + $buses[$busId] = new Reference($busId); + } + + $container->getDefinition('console.command.messenger_consume_messages') + ->replaceArgument(0, ServiceLocatorTagPass::register($container, $buses)) + ->replaceArgument(3, array_values($receiverNames)) + ->replaceArgument(4, $busIds); } $container->getDefinition('messenger.receiver_locator')->replaceArgument(0, $receiverMapping); diff --git a/src/Symfony/Component/Messenger/Tests/DependencyInjection/MessengerPassTest.php b/src/Symfony/Component/Messenger/Tests/DependencyInjection/MessengerPassTest.php index 8c43c58733..d59680e7b4 100644 --- a/src/Symfony/Component/Messenger/Tests/DependencyInjection/MessengerPassTest.php +++ b/src/Symfony/Component/Messenger/Tests/DependencyInjection/MessengerPassTest.php @@ -241,10 +241,11 @@ class MessengerPassTest extends TestCase { $container = $this->getContainerBuilder(); $container->register('console.command.messenger_consume_messages', ConsumeMessagesCommand::class)->setArguments(array( - new Reference('message_bus'), + null, new Reference('messenger.receiver_locator'), null, null, + null, )); $container->register(AmqpReceiver::class, AmqpReceiver::class)->addTag('messenger.receiver', array('alias' => 'amqp')); @@ -253,6 +254,7 @@ class MessengerPassTest extends TestCase (new MessengerPass())->process($container); $this->assertSame(array('amqp', 'dummy'), $container->getDefinition('console.command.messenger_consume_messages')->getArgument(3)); + $this->assertSame(array('message_bus'), $container->getDefinition('console.command.messenger_consume_messages')->getArgument(4)); } public function testItRegistersSenders()