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

View File

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

View File

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