@@ -331,6 +331,33 @@ public function testCreateServiceFactory()
331331 $ this ->assertTrue ($ builder ->get ('qux ' )->called , '->createService() calls the factory method to create the service instance ' );
332332 $ this ->assertTrue ($ builder ->get ('bar ' )->called , '->createService() uses anonymous service as factory ' );
333333 $ this ->assertTrue ($ builder ->get ('baz ' )->called , '->createService() uses another service as factory ' );
334+
335+ $ builder
336+ ->register ('foo1 ' , 'Bar\FooClass ' )
337+ ->setFactoryClass ('%foo_class% ' )
338+ ->setFactoryMethod ('getInstance ' )
339+ ->addArgument (array ('foo ' => '%value% ' , '%value% ' => 'foo ' , new Reference ('bar ' )))
340+ ;
341+ $ builder ->setParameter ('value ' , 'bar ' );
342+ $ builder ->setParameter ('foo_class ' , 'Bar\FooClass ' );
343+ $ this ->assertTrue ($ builder ->get ('foo1 ' )->called , '->createService() calls the factory method to create the service instance ' );
344+ $ this ->assertEquals (array ('foo ' => 'bar ' , 'bar ' => 'foo ' , $ builder ->get ('bar ' )), $ builder ->get ('foo1 ' )->arguments , '->createService() passes the arguments to the factory method ' );
345+ }
346+
347+ /**
348+ * @covers Symfony\Component\DependencyInjection\ContainerBuilder::createService
349+ */
350+ public function testCreateServiceFactoryService ()
351+ {
352+ $ builder = new ContainerBuilder ();
353+ $ builder ->register ('foo_service ' , 'Bar\FooClass ' );
354+ $ builder
355+ ->register ('foo ' , 'Bar\FooClass ' )
356+ ->setFactoryService ('%foo_service% ' )
357+ ->setFactoryMethod ('getInstance ' )
358+ ;
359+ $ builder ->setParameter ('foo_service ' , 'foo_service ' );
360+ $ this ->assertTrue ($ builder ->get ('foo ' )->called , '->createService() calls the factory method to create the service instance ' );
334361 }
335362
336363 /**
0 commit comments