more tests

This commit is contained in:
Norbert Wagner 2021-01-14 17:48:41 +01:00
parent 81c9247571
commit ed554705e5
3 changed files with 28 additions and 5 deletions

View File

@ -137,7 +137,7 @@ class Settings implements \Iterator
else
{
// echo "No settingsfile: $defaultConf";
throw new \ErrorException( "No settingsfile: $defaultConf" );
throw new \Exception( "No settingsfile: $defaultConf" );
// throw new FileNotFoundException();
}
@ -307,7 +307,7 @@ class Settings implements \Iterator
// Magic getter/setter methods {{{
public function __set( $name, $value )
{
// todo: throw new SettingsAreReadOnlyException();
throw new \Exception("Settings are read only. Unable to set $name to $value");
}
public function __get( $name )
@ -315,7 +315,6 @@ class Settings implements \Iterator
if ( !isset( $this->settings[$name] ) )
{
throw new \OutOfRangeException("Setting '$name' not found");
// todo: throw new SettingNotFoundException();
}
return (is_array( $this->settings[$name] ))

View File

@ -38,10 +38,19 @@ class SettingsTest extends TestCase
public function testLoadNoFile()
{
$cfg = new Settings();
$this->expectException(\ErrorException::class);
$this->expectException(\Exception::class);
$cfg->load();
}
/**
*/
public function testReadOnly()
{
$cfg = new Settings();
$this->expectException(\Exception::class);
$cfg->answer = 42;
}
/**
*/
private function appPath(Settings $cfg, string $dir='')
@ -86,6 +95,19 @@ class SettingsTest extends TestCase
$this->assertEquals('default', $nested->testFiles);
}
/**
* @depends testLoad
*/
public function testNestedArray(Settings $cfg)
{
$nested = $cfg->nested->toArray();
$this->assertIsArray($nested);
$this->assertIsIterable($nested);
$this->assertEquals(1, $nested['level']);
$this->assertEquals(2, $nested['nested']['level']);
$this->assertEquals('default', $nested['testFiles']);
}
/**
* @depends testLoad
*/
@ -104,6 +126,7 @@ class SettingsTest extends TestCase
$cfg = $this->appPath($cfg)->site('site')->load();
$this->assertEquals('default', $cfg->testFiles);
$this->assertEquals('site', $cfg->testFile);
$this->assertEquals(42, $cfg->answer);
}

View File

@ -1,3 +1,4 @@
<?php return [
'answer' => 42
'answer' => 42,
'testFile' => 'site'
];