From a50057c979c1bdc5ba211ea12f5c2694a773a90e Mon Sep 17 00:00:00 2001 From: Ema Panz Date: Thu, 10 May 2018 14:45:26 +0200 Subject: [PATCH] Improve exeption messages for topic-subscribers --- .../ExtractProcessorTagSubscriptionsTrait.php | 14 ++++++++++++-- .../Compiler/BuildClientRoutingPassTest.php | 2 +- .../Compiler/BuildProcessorRegistryPassTest.php | 2 +- .../Compiler/BuildTopicMetaSubscribersPassTest.php | 2 +- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/pkg/enqueue-bundle/DependencyInjection/Compiler/ExtractProcessorTagSubscriptionsTrait.php b/pkg/enqueue-bundle/DependencyInjection/Compiler/ExtractProcessorTagSubscriptionsTrait.php index e7a49ffe3..58fa57622 100644 --- a/pkg/enqueue-bundle/DependencyInjection/Compiler/ExtractProcessorTagSubscriptionsTrait.php +++ b/pkg/enqueue-bundle/DependencyInjection/Compiler/ExtractProcessorTagSubscriptionsTrait.php @@ -83,7 +83,16 @@ protected function extractSubscriptions(ContainerBuilder $container, $processorS if (is_subclass_of($processorClass, TopicSubscriberInterface::class)) { /** @var TopicSubscriberInterface $processorClass */ - foreach ($processorClass::getSubscribedTopics() as $topicName => $params) { + $topics = $processorClass::getSubscribedTopics(); + if (!is_array($topics)) { + throw new \LogicException(sprintf( + 'Topic subscriber configuration is invalid for "%s::getSubscribedTopics()": expected array, got %s.', + $processorClass, + gettype($topics) + )); + } + + foreach ($topics as $topicName => $params) { if (is_string($params)) { $data[] = [ 'topicName' => $params, @@ -102,7 +111,8 @@ protected function extractSubscriptions(ContainerBuilder $container, $processorS ]; } else { throw new \LogicException(sprintf( - 'Topic subscriber configuration is invalid. "%s"', + 'Topic subscriber configuration is invalid for "%s::getSubscribedTopics()". "%s"', + $processorClass, json_encode($processorClass::getSubscribedTopics()) )); } diff --git a/pkg/enqueue-bundle/Tests/Unit/DependencyInjection/Compiler/BuildClientRoutingPassTest.php b/pkg/enqueue-bundle/Tests/Unit/DependencyInjection/Compiler/BuildClientRoutingPassTest.php index 2b493f5df..f1b678570 100644 --- a/pkg/enqueue-bundle/Tests/Unit/DependencyInjection/Compiler/BuildClientRoutingPassTest.php +++ b/pkg/enqueue-bundle/Tests/Unit/DependencyInjection/Compiler/BuildClientRoutingPassTest.php @@ -254,7 +254,7 @@ public function testShouldThrowExceptionWhenTopicSubscriberConfigurationIsInvali $pass = new BuildClientRoutingPass(); $this->expectException(\LogicException::class); - $this->expectExceptionMessage('Topic subscriber configuration is invalid. "[12345]"'); + $this->expectExceptionMessage('Topic subscriber configuration is invalid'); $pass->process($container); } diff --git a/pkg/enqueue-bundle/Tests/Unit/DependencyInjection/Compiler/BuildProcessorRegistryPassTest.php b/pkg/enqueue-bundle/Tests/Unit/DependencyInjection/Compiler/BuildProcessorRegistryPassTest.php index c84a5aeba..9c7a00cdd 100644 --- a/pkg/enqueue-bundle/Tests/Unit/DependencyInjection/Compiler/BuildProcessorRegistryPassTest.php +++ b/pkg/enqueue-bundle/Tests/Unit/DependencyInjection/Compiler/BuildProcessorRegistryPassTest.php @@ -180,7 +180,7 @@ public function testShouldBuildRouteFromSubscriberIfProcessorNameSpecified() public function testShouldThrowExceptionWhenTopicSubscriberConfigurationIsInvalid() { $this->expectException(\LogicException::class); - $this->expectExceptionMessage('Topic subscriber configuration is invalid. "[12345]"'); + $this->expectExceptionMessage('Topic subscriber configuration is invalid'); $container = $this->createContainerBuilder(); diff --git a/pkg/enqueue-bundle/Tests/Unit/DependencyInjection/Compiler/BuildTopicMetaSubscribersPassTest.php b/pkg/enqueue-bundle/Tests/Unit/DependencyInjection/Compiler/BuildTopicMetaSubscribersPassTest.php index d5128add1..7e166b06d 100644 --- a/pkg/enqueue-bundle/Tests/Unit/DependencyInjection/Compiler/BuildTopicMetaSubscribersPassTest.php +++ b/pkg/enqueue-bundle/Tests/Unit/DependencyInjection/Compiler/BuildTopicMetaSubscribersPassTest.php @@ -302,7 +302,7 @@ public function testShouldThrowExceptionWhenTopicSubscriberConfigurationIsInvali $pass = new BuildTopicMetaSubscribersPass(); $this->expectException(\LogicException::class); - $this->expectExceptionMessage('Topic subscriber configuration is invalid. "[12345]"'); + $this->expectExceptionMessage('Topic subscriber configuration is invalid'); $pass->process($container); }