public function testCallbackMakesByContainerConfigurator() { $config = ['service' => ['class' => 'mougrim\\yii2ContainerConfigurator\\ContainerConfiguratorTestStub', 'arguments' => [['type' => ContainerConfigurator::ARGUMENT_TYPE_VALUE, 'value' => 'argument0Value'], ['type' => ContainerConfigurator::ARGUMENT_TYPE_VALUE, 'value' => 'argument1Value']], 'properties' => ['property1' => ['type' => ContainerConfigurator::ARGUMENT_TYPE_VALUE, 'value' => 'property1Value'], 'property2' => ['type' => ContainerConfigurator::ARGUMENT_TYPE_VALUE, 'value' => 'property2Value']]]]; $container = new Container(); $containerConfigurator = new ContainerConfigurator($container); $containerConfigurator->configure($config); /** @var ContainerConfiguratorTestStub $service */ $service = $container->get('service', [1 => 'argument1ValueA', 2 => 'argument2Value'], ['property2' => 'property2ValueA', 'property3' => 'property3Value']); ContainerConfiguratorTestStub::test($this, ['class' => $config['service']['class'], 'arguments' => ['argument0Value', 'argument1ValueA', 'argument2Value'], 'properties' => ['property1' => 'property1Value', 'property2' => 'property2ValueA', 'property3' => 'property3Value']], $service); }
public function testConfigurePrototypeExtends() { $config = ['parent' => ['type' => ContainerConfigurator::COMPONENT_TYPE_PROTOTYPE], 'prototype' => ['class' => 'mougrim\\yii2ContainerConfigurator\\ContainerConfiguratorTestStub', 'extends' => 'parent']]; $callParams = []; $container = $this->getContainerMock($callParams, 1); $containerConfigurator = new ContainerConfigurator($container); $containerConfigurator->configure($config); $this->assertTrue(isset($callParams['set'])); $this->assertTrue(isset($callParams['set']['prototype'])); $this->assertEquals(1, count($callParams['set']['prototype'])); $this->assertTrue(is_callable($callParams['set']['prototype'][0])); $stub = $callParams['set']['prototype'][0]($container, [], []); ContainerConfiguratorTestStub::test($this, ['class' => $config['prototype']['class']], $stub); $this->assertFalse(isset($callParams['setSingleton'])); }