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); }
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); }