diff --git a/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/ConnectionTest.php b/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/ConnectionTest.php index 1c2cc479f526..128ff60a0d00 100644 --- a/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/ConnectionTest.php +++ b/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/ConnectionTest.php @@ -124,6 +124,21 @@ public function testFromDsnWithQueryOptions() ); } + public function testFromDsnWithQueueNameOption() + { + $httpClient = $this->getMockBuilder(HttpClientInterface::class)->getMock(); + + $this->assertEquals( + new Connection(['queue_name' => 'queue'], new SqsClient(['region' => 'eu-west-1', 'accessKeyId' => null, 'accessKeySecret' => null], null, $httpClient)), + Connection::fromDsn('sqs://default', ['queue_name' => 'queue'], $httpClient) + ); + + $this->assertEquals( + new Connection(['queue_name' => 'queue'], new SqsClient(['region' => 'eu-west-1', 'accessKeyId' => null, 'accessKeySecret' => null], null, $httpClient)), + Connection::fromDsn('sqs://default/queue', ['queue_name' => 'queue_ignored'], $httpClient) + ); + } + public function testKeepGettingPendingMessages() { $client = $this->createMock(SqsClient::class); diff --git a/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/Connection.php b/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/Connection.php index ce1b3413edbd..ba7d2f98b9a4 100644 --- a/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/Connection.php +++ b/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/Connection.php @@ -101,6 +101,7 @@ public static function fromDsn(string $dsn, array $options = [], HttpClientInter 'poll_timeout' => $options['poll_timeout'], 'visibility_timeout' => $options['visibility_timeout'], 'auto_setup' => (bool) $options['auto_setup'], + 'queue_name' => (string) $options['queue_name'], ]; $clientConfiguration = [ @@ -119,8 +120,8 @@ public static function fromDsn(string $dsn, array $options = [], HttpClientInter } $parsedPath = explode('/', ltrim($parsedUrl['path'] ?? '/', '/')); - if (\count($parsedPath) > 0) { - $configuration['queue_name'] = end($parsedPath); + if (\count($parsedPath) > 0 && !empty($queueName = end($parsedPath))) { + $configuration['queue_name'] = $queueName; } $configuration['account'] = 2 === \count($parsedPath) ? $parsedPath[0] : null;
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: