40
40
use Symfony \Component \Messenger \Middleware \StackInterface ;
41
41
use Symfony \Component \Messenger \Tests \Fixtures \DummyCommand ;
42
42
use Symfony \Component \Messenger \Tests \Fixtures \DummyCommandHandler ;
43
+ use Symfony \Component \Messenger \Tests \Fixtures \DummyHandlerWithCustomMethods ;
43
44
use Symfony \Component \Messenger \Tests \Fixtures \DummyMessage ;
44
45
use Symfony \Component \Messenger \Tests \Fixtures \DummyQuery ;
45
46
use Symfony \Component \Messenger \Tests \Fixtures \DummyQueryHandler ;
46
47
use Symfony \Component \Messenger \Tests \Fixtures \MultipleBusesMessage ;
47
48
use Symfony \Component \Messenger \Tests \Fixtures \MultipleBusesMessageHandler ;
48
49
use Symfony \Component \Messenger \Tests \Fixtures \SecondMessage ;
49
50
use Symfony \Component \Messenger \Tests \Fixtures \TaggedDummyHandler ;
50
- use Symfony \Component \Messenger \Tests \Fixtures \TaggedDummyHandlerWithCustomMethods ;
51
51
use Symfony \Component \Messenger \Transport \Receiver \ReceiverInterface ;
52
52
53
53
class MessengerPassTest extends TestCase
@@ -106,40 +106,11 @@ public function testFromTransportViaTagAttribute()
106
106
$ this ->assertHandlerDescriptor ($ container , $ handlerDescriptionMapping , DummyMessage::class, [DummyHandler::class], [['from_transport ' => 'async ' ]]);
107
107
}
108
108
109
- public function testTaggedMessageHandler ()
109
+ public function testHandledMessageTypeResolvedWithMethodAndNoHandlesViaTagAttributes ()
110
110
{
111
111
$ container = $ this ->getContainerBuilder ($ busId = 'message_bus ' );
112
- $ container ->registerAttributeForAutoconfiguration (AsMessageHandler::class, static function (ChildDefinition $ definition , AsMessageHandler $ attribute ): void {
113
- $ tagAttributes = get_object_vars ($ attribute );
114
- $ tagAttributes ['from_transport ' ] = $ tagAttributes ['fromTransport ' ];
115
- unset($ tagAttributes ['fromTransport ' ]);
116
-
117
- $ definition ->addTag ('messenger.message_handler ' , $ tagAttributes );
118
- });
119
112
$ container
120
- ->register (TaggedDummyHandler::class, TaggedDummyHandler::class)
121
- ->setAutoconfigured (true )
122
- ;
123
-
124
- (new AttributeAutoconfigurationPass ())->process ($ container );
125
- (new ResolveInstanceofConditionalsPass ())->process ($ container );
126
- (new MessengerPass ())->process ($ container );
127
-
128
- $ handlersLocatorDefinition = $ container ->getDefinition ($ busId .'.messenger.handlers_locator ' );
129
- $ this ->assertSame (HandlersLocator::class, $ handlersLocatorDefinition ->getClass ());
130
-
131
- $ handlerDescriptionMapping = $ handlersLocatorDefinition ->getArgument (0 );
132
- $ this ->assertCount (1 , $ handlerDescriptionMapping );
133
-
134
- $ this ->assertHandlerDescriptor ($ container , $ handlerDescriptionMapping , DummyMessage::class, [TaggedDummyHandler::class], [[]]);
135
- }
136
-
137
- public function testTaggedMessageHandlerWithGivenMethodAndNotGivenMessageType ()
138
- {
139
- $ container = $ this ->getContainerBuilder ($ busId = 'message_bus ' );
140
- $ container
141
- ->register (TaggedDummyHandlerWithCustomMethods::class, TaggedDummyHandlerWithCustomMethods::class)
142
- ->setAutoconfigured (true )
113
+ ->register (DummyHandlerWithCustomMethods::class, DummyHandlerWithCustomMethods::class)
143
114
->addTag ('messenger.message_handler ' , [
144
115
'method ' => 'handleDummyMessage ' ,
145
116
])
@@ -156,18 +127,46 @@ public function testTaggedMessageHandlerWithGivenMethodAndNotGivenMessageType()
156
127
$ container ,
157
128
$ handlersMapping ,
158
129
DummyMessage::class,
159
- [[TaggedDummyHandlerWithCustomMethods ::class, 'handleDummyMessage ' ]]
130
+ [[DummyHandlerWithCustomMethods ::class, 'handleDummyMessage ' ]]
160
131
);
161
132
162
133
$ this ->assertArrayHasKey (SecondMessage::class, $ handlersMapping );
163
134
$ this ->assertHandlerDescriptor (
164
135
$ container ,
165
136
$ handlersMapping ,
166
137
SecondMessage::class,
167
- [[TaggedDummyHandlerWithCustomMethods ::class, 'handleSecondMessage ' ]]
138
+ [[DummyHandlerWithCustomMethods ::class, 'handleSecondMessage ' ]]
168
139
);
169
140
}
170
141
142
+ public function testTaggedMessageHandler ()
143
+ {
144
+ $ container = $ this ->getContainerBuilder ($ busId = 'message_bus ' );
145
+ $ container ->registerAttributeForAutoconfiguration (AsMessageHandler::class, static function (ChildDefinition $ definition , AsMessageHandler $ attribute ): void {
146
+ $ tagAttributes = get_object_vars ($ attribute );
147
+ $ tagAttributes ['from_transport ' ] = $ tagAttributes ['fromTransport ' ];
148
+ unset($ tagAttributes ['fromTransport ' ]);
149
+
150
+ $ definition ->addTag ('messenger.message_handler ' , $ tagAttributes );
151
+ });
152
+ $ container
153
+ ->register (TaggedDummyHandler::class, TaggedDummyHandler::class)
154
+ ->setAutoconfigured (true )
155
+ ;
156
+
157
+ (new AttributeAutoconfigurationPass ())->process ($ container );
158
+ (new ResolveInstanceofConditionalsPass ())->process ($ container );
159
+ (new MessengerPass ())->process ($ container );
160
+
161
+ $ handlersLocatorDefinition = $ container ->getDefinition ($ busId .'.messenger.handlers_locator ' );
162
+ $ this ->assertSame (HandlersLocator::class, $ handlersLocatorDefinition ->getClass ());
163
+
164
+ $ handlerDescriptionMapping = $ handlersLocatorDefinition ->getArgument (0 );
165
+ $ this ->assertCount (1 , $ handlerDescriptionMapping );
166
+
167
+ $ this ->assertHandlerDescriptor ($ container , $ handlerDescriptionMapping , DummyMessage::class, [TaggedDummyHandler::class], [[]]);
168
+ }
169
+
171
170
public function testProcessHandlersByBus ()
172
171
{
173
172
$ container = $ this ->getContainerBuilder ($ commandBusId = 'command_bus ' );
0 commit comments