@@ -163,7 +163,7 @@ public function testLoadAnonymousServices()
163
163
$ loader = new XmlFileLoader ($ container , new FileLocator (self ::$ fixturesPath .'/xml ' ));
164
164
$ loader ->load ('services5.xml ' );
165
165
$ services = $ container ->getDefinitions ();
166
- $ this ->assertCount (4 , $ services , '->load() attributes unique ids to anonymous services ' );
166
+ $ this ->assertCount (6 , $ services , '->load() attributes unique ids to anonymous services ' );
167
167
168
168
// anonymous service as an argument
169
169
$ args = $ services ['foo ' ]->getArguments ();
@@ -172,6 +172,7 @@ public function testLoadAnonymousServices()
172
172
$ this ->assertTrue (isset ($ services [(string ) $ args [0 ]]), '->load() makes a reference to the created ones ' );
173
173
$ inner = $ services [(string ) $ args [0 ]];
174
174
$ this ->assertEquals ('BarClass ' , $ inner ->getClass (), '->load() uses the same configuration as for the anonymous ones ' );
175
+ $ this ->assertFalse ($ inner ->isPublic ());
175
176
176
177
// inner anonymous services
177
178
$ args = $ inner ->getArguments ();
@@ -188,7 +189,25 @@ public function testLoadAnonymousServices()
188
189
$ this ->assertInstanceOf ('Symfony \\Component \\DependencyInjection \\Reference ' , $ property , '->load() converts anonymous services to references to "normal" services ' );
189
190
$ this ->assertTrue (isset ($ services [(string ) $ property ]), '->load() makes a reference to the created ones ' );
190
191
$ inner = $ services [(string ) $ property ];
191
- $ this ->assertEquals ('BazClass ' , $ inner ->getClass (), '->load() uses the same configuration as for the anonymous ones ' );
192
+ $ this ->assertEquals ('BuzClass ' , $ inner ->getClass (), '->load() uses the same configuration as for the anonymous ones ' );
193
+ $ this ->assertFalse ($ inner ->isPublic ());
194
+
195
+ // "wild" service
196
+ $ service = $ container ->findTaggedServiceIds ('biz_tag ' );
197
+ $ this ->assertCount (1 , $ service );
198
+
199
+ foreach ($ service as $ id => $ tag ) {
200
+ $ service = $ container ->getDefinition ($ id );
201
+ }
202
+ $ this ->assertEquals ('BizClass ' , $ service ->getClass (), '->load() uses the same configuration as for the anonymous ones ' );
203
+ $ this ->assertFalse ($ service ->isPublic ());
204
+
205
+ // anonymous services are shared when using decoration definitions
206
+ $ container ->compile ();
207
+ $ services = $ container ->getDefinitions ();
208
+ $ fooArgs = $ services ['foo ' ]->getArguments ();
209
+ $ barArgs = $ services ['bar ' ]->getArguments ();
210
+ $ this ->assertSame ($ fooArgs [0 ], $ barArgs [0 ]);
192
211
}
193
212
194
213
/**
0 commit comments