@@ -358,6 +358,52 @@ public function testShouldMergeExtractedRoutesWithAlreadySetInCollection()
358358 );
359359 }
360360
361+ public function testShouldRegister08TopicSubscriber ()
362+ {
363+ $ routeCollection = new Definition (RouteCollection::class);
364+ $ routeCollection ->addArgument ([]);
365+
366+ $ processor = $ this ->createTopicSubscriberProcessor ([
367+ 'fooTopic ' => ['processorName ' => 'aCustomFooProcessorName ' , 'queueName ' => 'fooQueue ' , 'queueNameHardcoded ' => true , 'anOption ' => 'aFooVal ' ],
368+ 'barTopic ' => ['processorName ' => 'aCustomBarProcessorName ' , 'anOption ' => 'aBarVal ' ],
369+ ]);
370+
371+ $ container = new ContainerBuilder ();
372+ $ container ->setParameter ('enqueue.clients ' , ['default ' ]);
373+ $ container ->setDefinition ('enqueue.client.default.route_collection ' , $ routeCollection );
374+ $ container ->register ('aFooProcessor ' , get_class ($ processor ))
375+ ->addTag ('enqueue.topic_subscriber ' )
376+ ;
377+
378+ $ pass = new BuildTopicSubscriberRoutesPass ();
379+ $ pass ->process ($ container );
380+
381+ $ this ->assertInternalType ('array ' , $ routeCollection ->getArgument (0 ));
382+ $ this ->assertCount (2 , $ routeCollection ->getArgument (0 ));
383+
384+ $ this ->assertEquals (
385+ [
386+ [
387+ 'source ' => 'fooTopic ' ,
388+ 'source_type ' => 'enqueue.client.topic_route ' ,
389+ 'processor ' => 'aCustomFooProcessorName ' ,
390+ 'processor_service_id ' => 'aFooProcessor ' ,
391+ 'anOption ' => 'aFooVal ' ,
392+ 'queue ' => 'fooQueue ' ,
393+ 'prefix_queue ' => false ,
394+ ],
395+ [
396+ 'source ' => 'barTopic ' ,
397+ 'source_type ' => 'enqueue.client.topic_route ' ,
398+ 'processor ' => 'aCustomBarProcessorName ' ,
399+ 'processor_service_id ' => 'aFooProcessor ' ,
400+ 'anOption ' => 'aBarVal ' ,
401+ ],
402+ ],
403+ $ routeCollection ->getArgument (0 )
404+ );
405+ }
406+
361407 private function createTopicSubscriberProcessor ($ topicSubscriberReturns = ['aTopic ' ])
362408 {
363409 $ processor = new class () implements Processor, TopicSubscriberInterface {
0 commit comments