@@ -163,7 +163,7 @@ public function testLoadAnonymousServices()
163163 $ loader = new XmlFileLoader ($ container , new FileLocator (self ::$ fixturesPath .'/xml ' ));
164164 $ loader ->load ('services5.xml ' );
165165 $ 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 ' );
167167
168168 // anonymous service as an argument
169169 $ args = $ services ['foo ' ]->getArguments ();
@@ -172,6 +172,7 @@ public function testLoadAnonymousServices()
172172 $ this ->assertTrue (isset ($ services [(string ) $ args [0 ]]), '->load() makes a reference to the created ones ' );
173173 $ inner = $ services [(string ) $ args [0 ]];
174174 $ this ->assertEquals ('BarClass ' , $ inner ->getClass (), '->load() uses the same configuration as for the anonymous ones ' );
175+ $ this ->assertFalse ($ inner ->isPublic ());
175176
176177 // inner anonymous services
177178 $ args = $ inner ->getArguments ();
@@ -188,7 +189,25 @@ public function testLoadAnonymousServices()
188189 $ this ->assertInstanceOf ('Symfony \\Component \\DependencyInjection \\Reference ' , $ property , '->load() converts anonymous services to references to "normal" services ' );
189190 $ this ->assertTrue (isset ($ services [(string ) $ property ]), '->load() makes a reference to the created ones ' );
190191 $ 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 ]);
192211 }
193212
194213 /**
0 commit comments