public function testItCanUseDifferentContainerAdapters() { $container = new ExampleContainer(); ExampleContainerAdapter::reset(); Configurator::apply()->withContainerAdapter(ExampleContainer::class, ExampleContainerAdapter::class)->configFromArray([])->to($container); assertSame(1, ExampleContainerAdapter::getNumberOfInstances()); }
public function testItAddToConfigUsingFiles() { $config = ['keyB' => 'valueB']; $this->createJSONConfigFile('config.json', $config); Configurator::apply()->configFromArray(['keyA' => 'valueA', 'keyB' => 'valueX'])->configFromFiles($this->getTestPath('*'))->to($this->container); assertSame('valueA', $this->container->get('config.keyA')); assertSame('valueB', $this->container->get('config.keyB')); }
/** * @param array $arguments * * @return array */ private function resolveArguments(array $arguments) { return array_map(function ($argument) { if ($argument === Configurator::container()) { return $this->container; } if ($this->container->has($argument)) { return $this->container->get($argument); } return $argument; }, $arguments); }
/** * @param array $arguments * * @return array */ private function resolveArguments(array $arguments) { return array_map(function ($argument) { if (!is_string($argument)) { return $argument; } if ($argument === Configurator::container()) { return $this->container; } if (isset($this->container[$argument])) { return $this->container[$argument]; } return $argument; }, $arguments); }
public function testItInjectsTheContainerAsFactoryDependency() { $config = ['class_name' => ExampleClassWithArgs::class, 'di' => ['services' => ['example_service' => ['factory' => ExampleFactory::class, 'arguments' => ['config.class_name', Configurator::container()]]]]]; Configurator::apply()->configFromArray($config)->to($this->container); $instance = $this->container->get('example_service'); assertSame([$this->container], $instance->getConstructorArgs()); }
public function testItAddsConfigToTheContainerWithNoPrefix() { Configurator::apply()->configFromArray(['keyA' => 'valueA'])->withSetting(Configurator::SETTING_PREFIX, '')->to($this->container); assertEquals('valueA', $this->container->get('keyA')); }
public function testItSetsUpAnInflectorUsingCustomInflectorsKey() { $config = ['di' => ['services' => ['example' => ['class' => ExampleClass::class]]], 'inflectors' => [ExampleInterface::class => ['setValue' => ['test_value']]]]; Configurator::apply()->configFromArray($config)->withSetting(Configurator::SETTING_INFLECTORS_KEY, 'inflectors')->to($this->container); assertEquals('test_value', $this->container->get('example')->getValue()); }