Skip to content

Commit a50057c

Browse files
committed
Improve exeption messages for topic-subscribers
1 parent d8b0850 commit a50057c

File tree

4 files changed

+15
-5
lines changed

4 files changed

+15
-5
lines changed

pkg/enqueue-bundle/DependencyInjection/Compiler/ExtractProcessorTagSubscriptionsTrait.php

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,16 @@ protected function extractSubscriptions(ContainerBuilder $container, $processorS
8383

8484
if (is_subclass_of($processorClass, TopicSubscriberInterface::class)) {
8585
/** @var TopicSubscriberInterface $processorClass */
86-
foreach ($processorClass::getSubscribedTopics() as $topicName => $params) {
86+
$topics = $processorClass::getSubscribedTopics();
87+
if (!is_array($topics)) {
88+
throw new \LogicException(sprintf(
89+
'Topic subscriber configuration is invalid for "%s::getSubscribedTopics()": expected array, got %s.',
90+
$processorClass,
91+
gettype($topics)
92+
));
93+
}
94+
95+
foreach ($topics as $topicName => $params) {
8796
if (is_string($params)) {
8897
$data[] = [
8998
'topicName' => $params,
@@ -102,7 +111,8 @@ protected function extractSubscriptions(ContainerBuilder $container, $processorS
102111
];
103112
} else {
104113
throw new \LogicException(sprintf(
105-
'Topic subscriber configuration is invalid. "%s"',
114+
'Topic subscriber configuration is invalid for "%s::getSubscribedTopics()". "%s"',
115+
$processorClass,
106116
json_encode($processorClass::getSubscribedTopics())
107117
));
108118
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ public function testShouldThrowExceptionWhenTopicSubscriberConfigurationIsInvali
254254
$pass = new BuildClientRoutingPass();
255255

256256
$this->expectException(\LogicException::class);
257-
$this->expectExceptionMessage('Topic subscriber configuration is invalid. "[12345]"');
257+
$this->expectExceptionMessage('Topic subscriber configuration is invalid');
258258

259259
$pass->process($container);
260260
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ public function testShouldBuildRouteFromSubscriberIfProcessorNameSpecified()
180180
public function testShouldThrowExceptionWhenTopicSubscriberConfigurationIsInvalid()
181181
{
182182
$this->expectException(\LogicException::class);
183-
$this->expectExceptionMessage('Topic subscriber configuration is invalid. "[12345]"');
183+
$this->expectExceptionMessage('Topic subscriber configuration is invalid');
184184

185185
$container = $this->createContainerBuilder();
186186

pkg/enqueue-bundle/Tests/Unit/DependencyInjection/Compiler/BuildTopicMetaSubscribersPassTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ public function testShouldThrowExceptionWhenTopicSubscriberConfigurationIsInvali
302302
$pass = new BuildTopicMetaSubscribersPass();
303303

304304
$this->expectException(\LogicException::class);
305-
$this->expectExceptionMessage('Topic subscriber configuration is invalid. "[12345]"');
305+
$this->expectExceptionMessage('Topic subscriber configuration is invalid');
306306

307307
$pass->process($container);
308308
}

0 commit comments

Comments
 (0)