private static function processDataSources(\DOMDocument $xml, Config &$config) { $sources = $xml->getElementsByTagName(self::DATA_SOURCE_ELEMENT); foreach ($sources as $source) { $type = DataSourceType::valueOf($source->getAttribute('type')); $name = $source->getAttribute('name'); $host = $source->getElementsByTagName('host')->item(0)->nodeValue; $port = $source->getElementsByTagName('port')->length == 0 ? null : $source->getElementsByTagName('port')->item(0)->nodeValue; $username = $source->getElementsByTagName('username')->item(0)->nodeValue; $password = $source->getElementsByTagName('password')->item(0)->nodeValue; $database = $source->getElementsByTagName('database')->item(0)->nodeValue; $dataSource = new DataSourceConfig($type, $name, $host, $port, $username, $password, $database); $config->addDataSource($dataSource); } }
public function testValidConfig() { $config = ConfigLoader::load(dirname(__FILE__) . '/../../config/picon.xml'); $this->assertSame('HomePage', $config->getHomePage()); $this->assertSame('auto', $config->getStartUp()); $config = ConfigLoader::load(dirname(__FILE__) . '/../../config/full.xml'); $this->assertSame('HomePage', $config->getHomePage()); $this->assertSame('auto', $config->getStartUp()); $this->assertTrue($config->getProfile()->isCacheMarkup()); $this->assertFalse($config->getProfile()->isShowPiconTags()); $this->assertFalse($config->getProfile()->isCleanBeforeOutput()); $sources = $config->getDataSources(); $this->assertCount(1, $sources); $source = $sources[0]; $this->assertSame($source->name, 'testSource'); $this->assertEquals($source->type, DataSourceType::valueOf("MySQL")); $this->assertSame($source->port, '3306'); $this->assertSame($source->host, 'localhost'); $this->assertSame($source->username, 'someuser'); $this->assertSame($source->password, 'somepassword'); $this->assertSame($source->database, 'somedb'); }