13
13
14
14
use PHPUnit \Framework \TestCase ;
15
15
use Symfony \Bridge \PhpUnit \ExpectDeprecationTrait ;
16
+ use Symfony \Component \Console \Command \Command ;
16
17
use Symfony \Component \DependencyInjection \ChildDefinition ;
17
18
use Symfony \Component \DependencyInjection \Compiler \AttributeAutoconfigurationPass ;
18
19
use Symfony \Component \DependencyInjection \Compiler \ResolveChildDefinitionsPass ;
@@ -453,7 +454,7 @@ public function testItRegistersReceivers()
453
454
{
454
455
$ container = $ this ->getContainerBuilder ();
455
456
$ container ->register ('message_bus ' , MessageBusInterface::class)->addTag ('messenger.bus ' );
456
- $ container ->register (AmqpReceiver::class, AmqpReceiver::class)->addTag ('messenger.receiver ' , ['alias ' => 'amqp ' ]);
457
+ $ container ->register (AmqpReceiver::class, AmqpReceiver::class)->addTag ('messenger.receiver ' , ['alias ' => 'amqp ' , ' is_consumable ' => true ]);
457
458
458
459
(new MessengerPass ())->process ($ container );
459
460
@@ -464,7 +465,7 @@ public function testItRegistersReceiversWithoutTagName()
464
465
{
465
466
$ container = $ this ->getContainerBuilder ();
466
467
$ container ->register ('message_bus ' , MessageBusInterface::class)->addTag ('messenger.bus ' );
467
- $ container ->register (AmqpReceiver::class, AmqpReceiver::class)->addTag ('messenger.receiver ' );
468
+ $ container ->register (AmqpReceiver::class, AmqpReceiver::class)->addTag ('messenger.receiver ' , [ ' is_consumable ' => true ] );
468
469
469
470
(new MessengerPass ())->process ($ container );
470
471
@@ -482,8 +483,8 @@ public function testItRegistersMultipleReceiversAndSetsTheReceiverNamesOnTheComm
482
483
null ,
483
484
]);
484
485
485
- $ container ->register (AmqpReceiver::class, AmqpReceiver::class)->addTag ('messenger.receiver ' , ['alias ' => 'amqp ' ]);
486
- $ container ->register (DummyReceiver::class, DummyReceiver::class)->addTag ('messenger.receiver ' , ['alias ' => 'dummy ' ]);
486
+ $ container ->register (AmqpReceiver::class, AmqpReceiver::class)->addTag ('messenger.receiver ' , ['alias ' => 'amqp ' , ' is_consumable ' => true ]);
487
+ $ container ->register (DummyReceiver::class, DummyReceiver::class)->addTag ('messenger.receiver ' , ['alias ' => 'dummy ' , ' is_consumable ' => true ]);
487
488
488
489
(new MessengerPass ())->process ($ container );
489
490
@@ -498,14 +499,42 @@ public function testItSetsTheReceiverNamesOnTheSetupTransportsCommand()
498
499
null ,
499
500
]);
500
501
501
- $ container ->register (AmqpReceiver::class, AmqpReceiver::class)->addTag ('messenger.receiver ' , ['alias ' => 'amqp ' ]);
502
- $ container ->register (DummyReceiver::class, DummyReceiver::class)->addTag ('messenger.receiver ' , ['alias ' => 'dummy ' ]);
502
+ $ container ->register (AmqpReceiver::class, AmqpReceiver::class)->addTag ('messenger.receiver ' , ['alias ' => 'amqp ' , ' is_consumable ' => true ]);
503
+ $ container ->register (DummyReceiver::class, DummyReceiver::class)->addTag ('messenger.receiver ' , ['alias ' => 'dummy ' , ' is_consumable ' => true ]);
503
504
504
505
(new MessengerPass ())->process ($ container );
505
506
506
507
$ this ->assertSame (['amqp ' , 'dummy ' ], $ container ->getDefinition ('console.command.messenger_setup_transports ' )->getArgument (1 ));
507
508
}
508
509
510
+ public function testOnlyConsumableTransportsAreAddedToConsumeCommand ()
511
+ {
512
+ $ container = new ContainerBuilder ();
513
+
514
+ $ container ->register ('messenger.transport.async ' , DummyReceiver::class)
515
+ ->addTag ('messenger.receiver ' , ['alias ' => 'async ' , 'is_consumable ' => true ]);
516
+ $ container ->register ('messenger.transport.sync ' , DummyReceiver::class)
517
+ ->addTag ('messenger.receiver ' , ['alias ' => 'sync ' , 'is_consumable ' => false ]);
518
+ $ container ->register ('messenger.receiver_locator ' , ServiceLocator::class)
519
+ ->setArguments ([[]]);
520
+
521
+ $ container ->register ('console.command.messenger_consume_messages ' , Command::class)
522
+ ->setArguments ([
523
+ null ,
524
+ null ,
525
+ null ,
526
+ null ,
527
+ [],
528
+ ]);
529
+
530
+ (new MessengerPass ())->process ($ conta
7D0B
iner );
531
+
532
+ $ this ->assertSame (
533
+ ['async ' ],
534
+ $ container ->getDefinition ('console.command.messenger_consume_messages ' )->getArgument (4 )
535
+ );
536
+ }
537
+
509
538
/**
510
539
* @group legacy
511
540
*/
0 commit comments