Dieser Commit ist enthalten in:
Ursprung
2b21070b1a
Commit
f7a7c71f86
1583 geänderte Dateien mit 454759 neuen und 0 gelöschten Zeilen
237
tests/unit/library/Msd/ConfigurationTest.php
Normale Datei
237
tests/unit/library/Msd/ConfigurationTest.php
Normale Datei
|
|
@ -0,0 +1,237 @@
|
|||
<?php
|
||||
/**
|
||||
* @group configuration
|
||||
*/
|
||||
class Msd_ConfigurationTest extends ControllerTestCase
|
||||
{
|
||||
|
||||
public static function setUpBeforeClass()
|
||||
{
|
||||
Testhelper::copyFile('mysqldumper.ini', CONFIG_PATH . DS .'mysqldumper.ini');
|
||||
Testhelper::copyFile('mysqldumper2.ini', CONFIG_PATH . DS .'mysqldumper2.ini');
|
||||
}
|
||||
|
||||
public static function tearDownAfterClass()
|
||||
{
|
||||
Testhelper::removeFile(CONFIG_PATH . DS . 'mysqldumper2.ini');
|
||||
}
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
$this->loginUser();
|
||||
}
|
||||
|
||||
public function testThrowsExceptionOnCloning()
|
||||
{
|
||||
$config = Msd_Configuration::getInstance();
|
||||
try {
|
||||
clone($config);
|
||||
} catch (Exception $e) {
|
||||
$this->assertInstanceof('Msd_Exception', $e);
|
||||
return;
|
||||
}
|
||||
$this->fail('An expected exception has not been raised.');
|
||||
}
|
||||
|
||||
public function testCanSetValues()
|
||||
{
|
||||
$config = Msd_Configuration::getInstance();
|
||||
$config->set('config.testval', 999);
|
||||
$this->assertEquals(999, $config->get('config.testval'));
|
||||
$config->set('config.interface.testval2', 999);
|
||||
$this->assertEquals(999, $config->get('config.interface.testval2'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Msd_Exception
|
||||
*/
|
||||
public function testCanThrowExceptionOnSettingIllegalValue()
|
||||
{
|
||||
$config = Msd_Configuration::getInstance();
|
||||
$config->set('config.t.r.t.v', 999);
|
||||
}
|
||||
|
||||
public function testCanReloadConfig()
|
||||
{
|
||||
$config = Msd_Configuration::getInstance();
|
||||
$config->set('config.general.dbDelete', 'y'); //defaults to 'n'
|
||||
$this->assertEquals('y', $config->get('config.general.dbDelete'));
|
||||
$config->reloadConfig();
|
||||
$this->assertEquals('n', $config->get('config.general.dbDelete'));
|
||||
}
|
||||
|
||||
public function testCanGetValuesFromConfiguration()
|
||||
{
|
||||
$config = Msd_Configuration::getInstance();
|
||||
// get complete config-array
|
||||
$values = $config->get('config');
|
||||
$this->assertArrayHasKey('interface', $values);
|
||||
$this->assertArrayHasKey('dbuser', $values);
|
||||
$this->assertArrayHasKey('cronscript', $values);
|
||||
$this->assertArrayHasKey('cronscript', $values);
|
||||
$this->assertArrayHasKey('ftp', $values);
|
||||
$this->assertArrayHasKey('email', $values);
|
||||
$this->assertArrayHasKey('autodelete', $values);
|
||||
$this->assertArrayHasKey('general', $values);
|
||||
|
||||
//check some nested keys in different levels
|
||||
$values = $config->get('config.general');
|
||||
$this->assertArrayHasKey('mode', $values);
|
||||
$this->assertArrayHasKey('title', $values);
|
||||
$this->assertArrayHasKey('optimize', $values);
|
||||
|
||||
$value = $config->get('config.general.dbDelete');
|
||||
$this->assertEquals('n', $value);
|
||||
|
||||
$values = $config->get('config.ftp.0');
|
||||
$this->assertArrayHasKey('use', $values);
|
||||
$this->assertArrayHasKey('server', $values);
|
||||
$this->assertArrayHasKey('user', $values);
|
||||
|
||||
$value = $config->get('config.ftp.0.timeout');
|
||||
$this->assertEquals(10, $value);
|
||||
}
|
||||
|
||||
public function testCanReturnNullOnNonExistantConfigKey()
|
||||
{
|
||||
$config = Msd_Configuration::getInstance();
|
||||
$value = $config->get('config.IDont.Exist');
|
||||
$this->assertEquals(null, $value);
|
||||
}
|
||||
|
||||
public function testCanThrowExceptionOnSettingIncorrectValue()
|
||||
{
|
||||
$config = Msd_Configuration::getInstance();
|
||||
try {
|
||||
$config->set('testval', 999);
|
||||
} catch (Exception $e) {
|
||||
$this->assertInstanceof('Msd_Exception', $e);
|
||||
return;
|
||||
}
|
||||
$this->fail('An expected exception has not been raised.');
|
||||
}
|
||||
|
||||
public function testCanThrowExceptionOnGettingIncorrectValue()
|
||||
{
|
||||
$config = Msd_Configuration::getInstance();
|
||||
try {
|
||||
$config->get('testval', 999);
|
||||
} catch (Exception $e) {
|
||||
$this->assertInstanceof('Msd_Exception', $e);
|
||||
return;
|
||||
}
|
||||
$this->fail('An expected exception has not been raised.');
|
||||
}
|
||||
|
||||
public function testCanLoadConfigFromSessionOnSameRequest()
|
||||
{
|
||||
$config = Msd_Configuration::getInstance();
|
||||
$config->set('config.testval', 888);
|
||||
$config->saveConfigToSession();
|
||||
unset($config);
|
||||
|
||||
$config = Msd_Configuration::getInstance();
|
||||
$config->loadConfigFromSession();
|
||||
$this->assertEquals(888, $config->get('config.testval'));
|
||||
|
||||
// test constructor; should get filename and data from session
|
||||
Msd_Configuration::getInstance();
|
||||
}
|
||||
|
||||
public function testCanLoadConfiguration()
|
||||
{
|
||||
$config = Msd_Configuration::getInstance('mysqldumper', true);
|
||||
$this->assertEquals('mysqldumper', $config->get('dynamic.configFile'));
|
||||
// load another configuration and set values to actual session
|
||||
$config->loadConfiguration('mysqldumper2', true);
|
||||
$this->assertEquals('mysqldumper2', $config->get('dynamic.configFile'));
|
||||
}
|
||||
|
||||
public function testCanLoadConfigWithoutApplying()
|
||||
{
|
||||
$config = Msd_Configuration::getInstance('mysqldumper', true);
|
||||
$this->assertEquals('mysqldumper', $config->get('dynamic.configFile'));
|
||||
// load data from another config file but without using it
|
||||
$configData = $config->loadConfiguration('mysqldumper2', false);
|
||||
$this->assertInstanceOf('Zend_Config_Ini', $configData);
|
||||
$this->assertEquals(
|
||||
'MySQLDumper2',
|
||||
$configData->general->title
|
||||
);
|
||||
$this->assertEquals(
|
||||
'pl',
|
||||
$configData->cronscript->perlExtension
|
||||
);
|
||||
// make sure the actual config didn't change
|
||||
$this->assertEquals('mysqldumper', $config->get('dynamic.configFile'));
|
||||
}
|
||||
|
||||
public function testThrowsExceptionOnLoadNonExistantConfigfile()
|
||||
{
|
||||
$config = Msd_Configuration::getInstance();
|
||||
try {
|
||||
$config->loadConfiguration('IDontExist');
|
||||
} catch (Exception $e) {
|
||||
$this->assertInstanceof('Msd_Exception', $e);
|
||||
return;
|
||||
}
|
||||
$this->fail('An expected exception has not been raised.');
|
||||
}
|
||||
|
||||
public function testCanGetConfigTitle()
|
||||
{
|
||||
$config = Msd_Configuration::getInstance();
|
||||
$config->loadConfiguration('mysqldumper');
|
||||
$title = $config->getTitle();
|
||||
$this->assertEquals('MySQLDumper', $title);
|
||||
|
||||
$config->loadConfiguration('mysqldumper2');
|
||||
$title = $config->getTitle();
|
||||
$this->assertEquals('MySQLDumper2', $title);
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testCanLoadConfiguration
|
||||
*/
|
||||
public function testCanSaveConfiguration()
|
||||
{
|
||||
$config = Msd_Configuration::getInstance();
|
||||
$config->loadConfiguration('mysqldumper2');
|
||||
// change a value
|
||||
$config->set('config.cronscript.Path', 'IAmAPath');
|
||||
$config->save('mysqldumper2');
|
||||
// reload it and check changed val
|
||||
$config->loadConfiguration('mysqldumper2');
|
||||
$this->assertEquals('IAmAPath', $config->get('config.cronscript.Path'));
|
||||
// change val again
|
||||
$config->set('config.cronscript.Path', 'IDiffer');
|
||||
// now save without giving the filename; should be taken from session
|
||||
$config->save();
|
||||
// reload it and again check changed val
|
||||
$config->loadConfiguration('mysqldumper2');
|
||||
$this->assertEquals('IDiffer', $config->get('config.cronscript.Path'));
|
||||
// reset val for further tests
|
||||
$config->set('config.cronscript.Path', '');
|
||||
$config->save();
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testCanSaveConfiguration
|
||||
*/
|
||||
public function testCanSaveConfigFromArray()
|
||||
{
|
||||
$config = Msd_Configuration::getInstance();
|
||||
$config->loadConfiguration('mysqldumper2');
|
||||
// change title and save as new file
|
||||
$config->set('config.general.title', 'MySQLDumper3');
|
||||
$configData =$config->get('config');
|
||||
$this->assertTrue(is_array($configData));
|
||||
$config->save('mysqldumper3', $configData);
|
||||
$configFile = $config->get('paths.config').'/mysqldumper3.ini';
|
||||
$this->assertFileExists($configFile);
|
||||
$config->loadConfiguration('mysqldumper3');
|
||||
$title = $config->get('config.general.title');
|
||||
$this->assertEquals('MySQLDumper3', $title);
|
||||
Testhelper::removeFile(CONFIG_PATH . DS . 'mysqldumper3.ini');
|
||||
}
|
||||
}
|
||||
Laden …
Tabelle hinzufügen
Einen Link hinzufügen
In neuem Issue referenzieren