@@ -358,6 +358,53 @@ public function testShouldMergeExtractedRoutesWithAlreadySetInCollection()
358
358
);
359
359
}
360
360
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
+
361
408
private function createTopicSubscriberProcessor ($ topicSubscriberReturns = ['aTopic ' ])
362
409
{
363
410
$ processor = new class () implements Processor, TopicSubscriberInterface {
0 commit comments