Util_Settings/tests/SettingsTest.php
2021-01-12 16:16:44 +01:00

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:
}}}*/