<?php
+namespace Shaarli\Config;
/**
* Unit tests for Class ConfigManagerTest
* Note: it only test the manager with ConfigJson,
* ConfigPhp is only a workaround to handle the transition to JSON type.
*/
-class ConfigManagerTest extends PHPUnit_Framework_TestCase
+class ConfigManagerTest extends \PHPUnit_Framework_TestCase
{
/**
* @var ConfigManager
public function setUp()
{
- ConfigManager::$CONFIG_FILE = 'tests/utils/config/configJson';
- $this->conf = ConfigManager::reset();
+ $this->conf = new ConfigManager('tests/utils/config/configJson');
}
/**
$this->conf->set('paramArray', array('foo' => 'bar'));
$this->conf->set('paramNull', null);
- ConfigManager::$CONFIG_FILE = 'tests/utils/config/configTmp';
+ $this->conf->setConfigFile('tests/utils/config/configTmp');
$this->conf->write(true);
$this->conf->reload();
- unlink($this->conf->getConfigFile());
+ unlink($this->conf->getConfigFileExt());
$this->assertEquals(42, $this->conf->get('paramInt'));
$this->assertEquals('value1', $this->conf->get('paramString'));
{
$this->conf->set('foo.bar.key.stuff', 'testSetWriteGetNested');
- ConfigManager::$CONFIG_FILE = 'tests/utils/config/configTmp';
+ $this->conf->setConfigFile('tests/utils/config/configTmp');
$this->conf->write(true);
$this->conf->reload();
- unlink($this->conf->getConfigFile());
+ unlink($this->conf->getConfigFileExt());
$this->assertEquals('testSetWriteGetNested', $this->conf->get('foo.bar.key.stuff'));
}
+ public function testSetDeleteNested()
+ {
+ $this->conf->set('foo.bar.key.stuff', 'testSetDeleteNested');
+ $this->assertTrue($this->conf->exists('foo.bar'));
+ $this->assertTrue($this->conf->exists('foo.bar.key.stuff'));
+ $this->assertEquals('testSetDeleteNested', $this->conf->get('foo.bar.key.stuff'));
+
+ $this->conf->remove('foo.bar');
+ $this->assertFalse($this->conf->exists('foo.bar.key.stuff'));
+ $this->assertFalse($this->conf->exists('foo.bar'));
+ }
+
/**
* Set with an empty key.
*
- * @expectedException Exception
+ * @expectedException \Exception
* @expectedExceptionMessageRegExp #^Invalid setting key parameter. String expected, got.*#
*/
public function testSetEmptyKey()
/**
* Set with an array key.
*
- * @expectedException Exception
+ * @expectedException \Exception
* @expectedExceptionMessageRegExp #^Invalid setting key parameter. String expected, got.*#
*/
public function testSetArrayKey()
$this->conf->set(array('foo' => 'bar'), 'stuff');
}
+ /**
+ * Remove with an empty key.
+ *
+ * @expectedException \Exception
+ * @expectedExceptionMessageRegExp #^Invalid setting key parameter. String expected, got.*#
+ */
+ public function testRmoveEmptyKey()
+ {
+ $this->conf->remove('');
+ }
+
/**
* Try to write the config without mandatory parameter (e.g. 'login').
*
- * @expectedException MissingFieldConfigException
+ * @expectedException Shaarli\Config\Exception\MissingFieldConfigException
*/
public function testWriteMissingParameter()
{
- ConfigManager::$CONFIG_FILE = 'tests/utils/config/configTmp';
- $this->assertFalse(file_exists($this->conf->getConfigFile()));
+ $this->conf->setConfigFile('tests/utils/config/configTmp');
+ $this->assertFalse(file_exists($this->conf->getConfigFileExt()));
$this->conf->reload();
$this->conf->write(true);
*/
public function testExistsOk()
{
- $this->assertTrue($this->conf->exists('login'));
+ $this->assertTrue($this->conf->exists('credentials.login'));
$this->assertTrue($this->conf->exists('config.foo'));
}
*/
public function testReset()
{
- $conf = $this->conf;
- $this->assertTrue($conf === ConfigManager::getInstance());
- $this->assertFalse($conf === $this->conf->reset());
- $this->assertFalse($conf === ConfigManager::getInstance());
+ $confIO = $this->conf->getConfigIO();
+ $this->conf->reset();
+ $this->assertFalse($confIO === $this->conf->getConfigIO());
}
/**
*/
public function testReload()
{
- ConfigManager::$CONFIG_FILE = 'tests/utils/config/configTmp';
- $newConf = ConfigJson::$PHP_HEADER . '{ "key": "value" }';
- file_put_contents($this->conf->getConfigFile(), $newConf);
+ $this->conf->setConfigFile('tests/utils/config/configTmp');
+ $newConf = ConfigJson::getPhpHeaders() . '{ "key": "value" }';
+ file_put_contents($this->conf->getConfigFileExt(), $newConf);
$this->conf->reload();
- unlink($this->conf->getConfigFile());
+ unlink($this->conf->getConfigFileExt());
// Previous conf no longer exists, and new values have been loaded.
- $this->assertFalse($this->conf->exists('login'));
+ $this->assertFalse($this->conf->exists('credentials.login'));
$this->assertEquals('value', $this->conf->get('key'));
}
}