public function test_RegisterWithFactoryParam_ResolveNamed()
 {
     $counter = 0;
     $this->registerType('Test\\ClassA')->named('test')->onActivated(function () use(&$counter) {
         $counter++;
     });
     $this->registerType('ClassN22')->withParams(Parameter::named('test'));
     $c = $this->resolve('ClassN22');
     $this->assertEquals(0, $counter);
     $c->a->createInstance();
     $this->assertEquals(1, $counter);
 }
示例#2
0
 public function testResolvingNamedParameters()
 {
     $this->builder->registerType('ClassZ')->withParams(Parameter::def(), 'z', Parameter::named('test2'));
     $this->builder->registerType('ClassE')->withParams('test1');
     $this->builder->registerType('ClassE')->withParams('test2')->named('test2');
     $container = $this->builder->build();
     $z = $container->resolve('ClassZ');
     $this->assertEquals('test1', $container->resolve('ClassE')->value);
     $this->assertEquals('test2', $container->resolveNamed('test2')->value);
     $this->assertEquals('test1', $z->e1->value);
     $this->assertEquals('z', $z->value);
     $this->assertEquals('test2', $z->e2->value);
 }