$t->ok($builder->hasService('bar'), '->setAlias() defines a new service'); $t->ok($builder->getService('bar') === $builder->getService('foo'), '->setAlias() creates a service that is an alias to another one'); // ->getAliases() $t->diag('->getAliases()'); $builder = new sfServiceContainerBuilder(); $builder->setAlias('bar', 'foo'); $builder->setAlias('foobar', 'foo'); $t->is($builder->getAliases(), array('bar' => 'foo', 'foobar' => 'foo'), '->getAliases() returns all service aliases'); $builder->register('bar', 'stdClass'); $t->is($builder->getAliases(), array('foobar' => 'foo'), '->getAliases() does not return aliased services that have been overridden'); $builder->setService('foobar', 'stdClass'); $t->is($builder->getAliases(), array(), '->getAliases() does not return aliased services that have been overridden'); // ->hasService() $t->diag('->hasService()'); $builder = new sfServiceContainerBuilder(); $t->ok(!$builder->hasService('foo'), '->hasService() returns false if the service does not exist'); $builder->register('foo', 'FooClass'); $t->ok($builder->hasService('foo'), '->hasService() returns true if a service definition exists'); $builder->setAlias('foobar', 'foo'); $t->ok($builder->hasService('foo'), '->hasService() returns true if a service definition exists'); $builder->setService('bar', new stdClass()); $t->ok($builder->hasService('bar'), '->hasService() returns true if a service exists'); $builder->setAlias('foobar2', 'foo'); $t->ok($builder->hasService('foobar2'), '->hasService() returns true if a service exists'); // ->getService() $t->diag('->getService()'); $builder = new sfServiceContainerBuilder(); try { $builder->getService('foo'); $t->fail('->getService() throws an InvalidArgumentException if the service does not exist'); } catch (InvalidArgumentException $e) {
} $builder->register('foobar', 'stdClass')->setShared(true); $t->ok($builder->getService('bar') === $builder->getService('bar'), '->getService() always returns the same instance if the service is shared'); // ->getServiceIds() $t->diag('->getServiceIds()'); $builder = new sfServiceContainerBuilder(); $builder->register('foo', 'stdClass'); $builder->bar = $bar = new stdClass(); $builder->register('bar', 'stdClass'); $t->is($builder->getServiceIds(), array('foo', 'bar', 'service_container'), '->getServiceIds() returns all defined service ids'); // ->setAlias() $t->diag('->setAlias()'); $builder = new sfServiceContainerBuilder(); $builder->register('foo', 'stdClass'); $builder->setAlias('bar', 'foo'); $t->ok($builder->hasService('bar'), '->setAlias() defines a new service'); $t->ok($builder->getService('bar') === $builder->getService('foo'), '->setAlias() creates a service that is an alias to another one'); // ->getAliases() $t->diag('->getAliases()'); $builder = new sfServiceContainerBuilder(); $builder->setAlias('bar', 'foo'); $builder->setAlias('foobar', 'foo'); $t->is($builder->getAliases(), array('bar' => 'foo', 'foobar' => 'foo'), '->getAliases() returns all service aliases'); $builder->register('bar', 'stdClass'); $t->is($builder->getAliases(), array('foobar' => 'foo'), '->getAliases() does not return aliased services that have been overridden'); $builder->setService('foobar', 'stdClass'); $t->is($builder->getAliases(), array(), '->getAliases() does not return aliased services that have been overridden'); // ->createService() # file $t->diag('->createService() # file'); $builder = new sfServiceContainerBuilder(); $builder->register('foo1', 'FooClass')->setFile(dirname(__FILE__) . '/fixtures/includes/foo.php');