public function configure() { $configuration = $this->loader->load(); $config = new Config($this, $this->console); if (isset($configuration['providers'])) { foreach ($configuration['providers'] as $provider) { $config->configureProvider($provider); } } if (isset($configuration['settings'])) { $config->configureSettings($configuration['settings']); } if (isset($configuration['routes'])) { foreach ($configuration['routes'] as $routeName => $route) { $config->configureRoute($route, $routeName); } } if (isset($configuration['services'])) { foreach ($configuration['services'] as $serviceName => $service) { $config->configureService($serviceName, $service); } } if ($this->console != null && isset($configuration['console'])) { $consoleSettings = $configuration['console']; if (isset($consoleSettings['commands']) && is_array($consoleSettings['commands'])) { foreach ($consoleSettings['commands'] as $commandSetting) { $config->configureCommand($commandSetting); } } } }
/** * * @dataProvider getProviderSettingTestCases */ public function testConfigureProvider($providerSetting) { $mockApplication = $this->getMockBuilder('Skip\\WebApplication')->disableOriginalConstructor()->getMock(); $mockApplication->expects($this->once())->method('register')->will($this->returnCallback(function ($provider, $params) use($providerSetting) { $this->assertInstanceOf($providerSetting['class'], $provider); if (isset($providerSetting['params'])) { $originalParams = $providerSetting['params']; $this->assertEquals(gettype($params), gettype($originalParams)); if (is_array($params)) { foreach ($originalParams as $key => $value) { $this->assertTrue(isset($params[$key]), "Assert provider params has the key '{$key}'"); $this->assertEquals($value, $params[$key], "Assert \$params['{$key}'] === \$originalParams['{$key}']"); } } } })); $config = new Config($mockApplication); $config->configureProvider($providerSetting); }