@@ -358,6 +358,53 @@ 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 ->setParameter ('enqueue.default_client ' , 'default ' );
374+ $ container ->setDefinition ('enqueue.client.default.route_collection ' , $ routeCollection );
375+ $ container ->register ('aFooProcessor ' , get_class ($ processor ))
376+ ->addTag ('enqueue.topic_subscriber ' )
377+ ;
378+
379+ $ pass = new BuildTopicSubscriberRoutesPass ();
380+ $ pass ->process ($ container );
381+
382+ $ this ->assertInternalType ('array ' , $ routeCollection ->getArgument (0 ));
383+ $ this ->assertCount (2 , $ routeCollection ->getArgument (0 ));
384+
385+ $ this ->assertEquals (
386+ [
387+ [
388+ 'source ' => 'fooTopic ' ,
389+ 'source_type ' => 'enqueue.client.topic_route ' ,
390+ 'processor ' => 'aCustomFooProcessorName ' ,
391+ 'processor_service_id ' => 'aFooProcessor ' ,
392+ 'anOption ' => 'aFooVal ' ,
393+ 'queue ' => 'fooQueue ' ,
394+ 'prefix_queue ' => false ,
395+ ],
396+ [
397+ 'source ' => 'barTopic ' ,
398+ 'source_type ' => 'enqueue.client.topic_route ' ,
399+ 'processor ' => 'aCustomBarProcessorName ' ,
400+ 'processor_service_id ' => 'aFooProcessor ' ,
401+ 'anOption ' => 'aBarVal ' ,
402+ ],
403+ ],
404+ $ routeCollection ->getArgument (0 )
405+ );
406+ }
407+
361408 private function createTopicSubscriberProcessor ($ topicSubscriberReturns = ['aTopic ' ])
362409 {
363410 $ processor = new class () implements Processor, TopicSubscriberInterface {
0 commit comments