Add unit tests for nested-key handling in the PreservingIniWriter

fixes #6381
This commit is contained in:
Matthias Jentsch 2014-08-26 18:24:31 +02:00
parent 1ff63dbf3f
commit 1aa95b054c

View File

@ -12,12 +12,14 @@ use Icinga\Config\PreservingIniWriter;
class PreservingIniWriterTest extends BaseTestCase class PreservingIniWriterTest extends BaseTestCase
{ {
protected $tempFile; protected $tempFile;
protected $tempFile2;
public function setUp() public function setUp()
{ {
parent::setUp(); parent::setUp();
$this->tempFile = tempnam(sys_get_temp_dir(), 'icinga-ini-writer-test'); $this->tempFile = tempnam(sys_get_temp_dir(), 'icinga-ini-writer-test');
$this->tempFile2 = tempnam(sys_get_temp_dir(), 'icinga-ini-writer-test-2');
} }
public function tearDown() public function tearDown()
@ -25,6 +27,7 @@ class PreservingIniWriterTest extends BaseTestCase
parent::tearDown(); parent::tearDown();
unlink($this->tempFile); unlink($this->tempFile);
unlink($this->tempFile2);
} }
public function testWhetherSimplePropertiesAreInsertedInEmptyFiles() public function testWhetherSimplePropertiesAreInsertedInEmptyFiles()
@ -299,7 +302,7 @@ EOD
); );
$this->assertEquals( $this->assertEquals(
'1', '1',
$newConfig->get('bar')->get('key1'), $newConfig->get('foo')->get('key1'),
'PreservingIniWriter does not properly define extending sections' 'PreservingIniWriter does not properly define extending sections'
); );
} }
@ -678,6 +681,44 @@ EOD;
); );
} }
public function testKeyNormalization()
{
$normalKeys = new PreservingIniWriter(
array (
'config' => new Zend_Config(array (
'foo' => 'bar',
'nest' => array (
'nested' => array (
'stuff' => 'nested configuration element'
)
),
'preserving' => array (
'ini' => array(
'writer' => 'n'
),
'foo' => 'this should not be overwritten'
)
)),
'filename' => $this->tempFile
)
);
$nestedKeys = new PreservingIniWriter(
array (
'config' => new Zend_Config(array (
'foo' => 'bar',
'nest.nested.stuff' => 'nested configuration element',
'preserving.ini.writer' => 'n',
'preserving.foo' => 'this should not be overwritten'
)),
'filename' => $this->tempFile2
)
);
$this->assertEquals($normalKeys->render(), $nestedKeys->render());
}
/** /**
* Write a INI-configuration string to a temporary file and return it's path * Write a INI-configuration string to a temporary file and return it's path
* *