8000 [Messenger] Fix bug when using single route with XML config · symfony/symfony@a2a606e · GitHub
[go: up one dir, main page]

Skip to content

Commit a2a606e

Browse files
Nyholmfabpot
authored andcommitted
[Messenger] Fix bug when using single route with XML config
1 parent 592a31a commit a2a606e

File tree

5 files changed

+48
-0
lines changed

5 files changed

+48
-0
lines changed

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1193,6 +1193,10 @@ private function addMessengerSection(ArrayNodeDefinition $rootNode)
11931193
if (!\is_array($config)) {
11941194
return [];
11951195
}
1196+
// If XML config with only one routing attribute
1197+
if (2 === \count($config) && isset($config['message-class']) && isset($config['sender'])) {
1198+
$config = [0 => $config];
1199+
}
11961200

11971201
$newConfig = [];
11981202
foreach ($config as $k => $v) {
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
$container->loadFromExtension('framework', [
4+
'messenger' => [
5+
'routing' => [
6+
'Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\DummyMessage' => ['amqp'],
7+
],
8+
'transports' => [
9+
'amqp' => 'amqp://localhost/%2f/messages',
10+
],
11+
],
12+
]);
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<container xmlns="http://symfony.com/schema/dic/services"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:framework="http://symfony.com/schema/dic/symfony"
5+
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd
6+
http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
7+
8+
<framework:config>
9+
<framework:messenger>
10+
<framework:routing message-class="Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\DummyMessage">
11+
<framework:sender service="amqp" />
12+
</framework:routing>
13+
<framework:transport name="amqp" dsn="amqp://localhost/%2f/messages" />
14+
</framework:messenger>
15+
</framework:config>
16+
</container>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
framework:
2+
messenger:
3+
routing:
4+
'Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\DummyMessage': [amqp]
5+
6+
transports:
7+
amqp: 'amqp://localhost/%2f/messages'

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -740,6 +740,15 @@ public function testMessengerRouting()
740740
$this->assertEquals(new Reference('messenger.transport.audit'), $sendersLocator->getArgument(0)['messenger.transport.audit']->getValues()[0]);
741741
}
742742

743+
public function testMessengerRoutingSingle()
744+
{
745+
$container = $this->createContainerFromFile('messenger_routing_single');
746+
$senderLocatorDefinition = $container->getDefinition('messenger.senders_locator');
747+
748+
$sendersMapping = $senderLocatorDefinition->getArgument(0);
749+
$this->assertEquals(['amqp'], $sendersMapping[DummyMessage::class]);
750+
}
751+
743752
public function testMessengerTransportConfiguration()
744753
{
745754
$container = $this->createContainerFromFile('messenger_transport');

0 commit comments

Comments
 (0)
0