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