@@ -331,6 +331,33 @@ public function testCreateServiceFactory()
331
331
$ this ->assertTrue ($ builder ->get ('qux ' )->called , '->createService() calls the factory method to create the service instance ' );
332
332
$ this ->assertTrue ($ builder ->get ('bar ' )->called , '->createService() uses anonymous service as factory ' );
333
333
$ 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 ' );
334
361
}
335
362
336
363
/**
0 commit comments