/** * Load configuration data from the source. * * @param ConfigurationLoader $loader * @param array<string, mixed> $params * @return Configuration * * @throws ConfigurationLoadingException */ public function loadConfiguration(ConfigurationLoader $loader, array $params = []) { try { $data = $loader->findLoader($this->source)->load($this->source, $params); return new Configuration($this->createBase($data)); } catch (\Exception $e) { throw new ConfigurationLoadingException(sprintf('Unable to load config from source "%s"', $this->source->getPathname()), 0, $e); } }
/** * @test */ public function it_loads_the_configuration_file() { // Mock Adviser\Utilities\FileUtility. $file = $this->mockUtility("File"); $file->shouldReceive("exists")->once()->with(getcwd() . "/adviser.yml")->andReturn(true); $file->shouldReceive("read")->once()->with(ADVISER_DIR . "/adviser-default.yml")->andReturn(null); $file->shouldReceive("read")->once()->with(getcwd() . "/adviser.yml")->andReturn(null); // Mock Adviser\Utilities\YAMLParserUtility. $YAMLParser = $this->mockUtility("YAMLParser"); $YAMLParser->shouldReceive("parse")->twice()->andReturn(["foo" => "bar", "qux" => 123], ["foo" => "baz"]); // Create a new instance of ConfigurationLoader. $loader = new ConfigurationLoader($file, $YAMLParser); $this->assertInternalType("array", $configuration = $loader->load(true)); $this->assertEquals($configuration, ["foo" => ["bar", "baz"], "qux" => 123]); }