119 lines
No EOL
2.6 KiB
PHP
119 lines
No EOL
2.6 KiB
PHP
<?php
|
|
/* {{{ Copyright and License Notice
|
|
*
|
|
* Copyright © 2021 RaBe Websolutions
|
|
*
|
|
* This file is part of rabe/Util-Settings.
|
|
*
|
|
* rabe/Util-Settings is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* rabe/Util-Settings is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Affero General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with rabe/Util-Settings. If not, see <https://www.gnu.org/licenses/>.
|
|
*
|
|
*///}}}
|
|
declare(strict_types=1);
|
|
namespace rabe\Util\tests;
|
|
|
|
use rabe\Util\Settings;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class SettingsTest extends TestCase
|
|
{
|
|
public function testConstruct()
|
|
{
|
|
$cfg = new Settings();
|
|
$this->assertNotEmpty($cfg);
|
|
return $cfg;
|
|
}
|
|
|
|
/**
|
|
* @depends testConstruct
|
|
*/
|
|
public function testLoadNoFile(Settings $cfg)
|
|
{
|
|
$this->expectException(\ErrorException::class);
|
|
$cfg->load();
|
|
}
|
|
|
|
/**
|
|
*/
|
|
private function appPath(Settings $cfg, ?string $dir='')
|
|
{
|
|
if (isset($dir)) $dir .= '/';
|
|
|
|
$path = dirname(__FILE__).'/cfg/'.$dir;
|
|
$cfg->appPath($path);
|
|
|
|
return $cfg;
|
|
}
|
|
|
|
/**
|
|
* @depends testConstruct
|
|
*/
|
|
public function testLoad(Settings $cfg)
|
|
{
|
|
$cfg = $this->appPath($cfg)->load();
|
|
$this->assertNotEmpty($cfg);
|
|
return $cfg;
|
|
}
|
|
|
|
/**
|
|
* @depends testLoad
|
|
*/
|
|
public function testMode(Settings $cfg)
|
|
{
|
|
$this->assertEquals('test', $cfg->mode);
|
|
}
|
|
|
|
/**
|
|
* @depends testConstruct
|
|
*/
|
|
public function testSiteOverride(Settings $cfg)
|
|
{
|
|
$cfg = $this->appPath($cfg)->site('site')->load();
|
|
$this->assertEquals(42, $cfg->answer);
|
|
}
|
|
|
|
/**
|
|
* @depends testConstruct
|
|
*/
|
|
public function testTestingOverride(Settings $cfg)
|
|
{
|
|
$cfg = $this->appPath($cfg, 'testingOverride')->load();
|
|
$this->assertEquals(42, $cfg->answer);
|
|
}
|
|
|
|
/**
|
|
* @depends testConstruct
|
|
*/
|
|
public function testLocalOverride(Settings $cfg)
|
|
{
|
|
$cfg = $this->appPath($cfg, 'localOverride')->load();
|
|
$this->assertEquals(42, $cfg->answer);
|
|
}
|
|
|
|
public function testBuildFileName()
|
|
{
|
|
$path = './config/';
|
|
$prefix = '';
|
|
$postfix = 'conf.php';
|
|
$type = '';
|
|
$defaultName = "$path$prefix$type$postfix";
|
|
|
|
$cfg = new Settings();
|
|
|
|
$this->assertEquals($defaultName, $cfg->buildFileName());
|
|
}
|
|
}
|
|
|
|
/* jEdit buffer local properties {{{
|
|
* :folding=explicit:collapseFolds=1:
|
|
}}}*/ |