113 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
<?php
 | 
						|
 | 
						|
namespace clagiordano\weblibs\configmanager\tests;
 | 
						|
 | 
						|
use clagiordano\weblibs\configmanager\ConfigManager;
 | 
						|
 | 
						|
/**
 | 
						|
 * Class ConfigManagerTest
 | 
						|
 * @package clagiordano\weblibs\configmanager\tests
 | 
						|
 */
 | 
						|
class ConfigManagerTest extends \PHPUnit_Framework_TestCase
 | 
						|
{
 | 
						|
    /** @var ConfigManager $config */
 | 
						|
    private $config = null;
 | 
						|
    private $configFile = 'testsdata/sample_config_data.php';
 | 
						|
 | 
						|
    public function setUp()
 | 
						|
    {
 | 
						|
        $this->config = new ConfigManager("TestConfigData.php");
 | 
						|
        $this->assertInstanceOf('clagiordano\weblibs\configmanager\ConfigManager', $this->config);
 | 
						|
 | 
						|
        $this->assertFileExists($this->configFile);
 | 
						|
        $this->config->loadConfig($this->configFile);
 | 
						|
    }
 | 
						|
 | 
						|
    public function testBasicUsage()
 | 
						|
    {
 | 
						|
        $this->assertNotNull(
 | 
						|
            $this->config->getValue('app')
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    public function testFastUsage()
 | 
						|
    {
 | 
						|
        $this->assertNotNull(
 | 
						|
            $this->config->getValue('app')
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    public function testFastInvalidKey()
 | 
						|
    {
 | 
						|
        $this->assertNull(
 | 
						|
            $this->config->getValue('invalidKey')
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    public function testFastInvalidKeyWithDefault()
 | 
						|
    {
 | 
						|
        $this->assertEquals(
 | 
						|
            $this->config->getValue('invalidKey', 'defaultValue'),
 | 
						|
            'defaultValue'
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    public function testFastNestedConfig()
 | 
						|
    {
 | 
						|
        $this->assertNotNull(
 | 
						|
            $this->config->getValue('other.multi.deep.nested')
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    public function testCheckExistConfig()
 | 
						|
    {
 | 
						|
        $this->assertTrue(
 | 
						|
            $this->config->existValue('other.multi.deep.nested')
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    public function testCheckNotExistConfig()
 | 
						|
    {
 | 
						|
        $this->assertFalse(
 | 
						|
            $this->config->existValue('invalid.config.path')
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    public function testSetValue()
 | 
						|
    {
 | 
						|
        $this->config->setValue('other.multi.deep.nested', __FUNCTION__);
 | 
						|
 | 
						|
        $this->assertEquals(
 | 
						|
            $this->config->getValue('other.multi.deep.nested'),
 | 
						|
            __FUNCTION__
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    public function testFailedSaveConfig()
 | 
						|
    {
 | 
						|
        $this->setExpectedException('Exception');
 | 
						|
        $this->config->saveConfigFile('/invalid/path');
 | 
						|
    }
 | 
						|
 | 
						|
    public function testSuccessSaveConfigOnTempAndReload()
 | 
						|
    {
 | 
						|
        $this->config->setValue('other.multi.deep.nested', "SUPERNESTED");
 | 
						|
        $this->config->saveConfigFile("/tmp/testconfig.php", true);
 | 
						|
 | 
						|
        $this->assertEquals(
 | 
						|
            $this->config->getValue('other.multi.deep.nested'),
 | 
						|
            "SUPERNESTED"
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    public function testOverwriteSameConfigFile()
 | 
						|
    {
 | 
						|
        $this->config->saveConfigFile();
 | 
						|
    }
 | 
						|
 | 
						|
    public function testFailWriteConfig()
 | 
						|
    {
 | 
						|
        $this->setExpectedException('\RuntimeException');
 | 
						|
        $this->config->saveConfigFile('/invalid/path/test.php');
 | 
						|
    }
 | 
						|
} |