summaryrefslogtreecommitdiffstats
path: root/test/php/library/Director/PropertyModifier/PropertyModifierCombineTest.php
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--test/php/library/Director/PropertyModifier/PropertyModifierCombineTest.php51
1 files changed, 51 insertions, 0 deletions
diff --git a/test/php/library/Director/PropertyModifier/PropertyModifierCombineTest.php b/test/php/library/Director/PropertyModifier/PropertyModifierCombineTest.php
new file mode 100644
index 0000000..4c42dba
--- /dev/null
+++ b/test/php/library/Director/PropertyModifier/PropertyModifierCombineTest.php
@@ -0,0 +1,51 @@
+<?php
+
+namespace Tests\Icinga\Module\Director\Objects;
+
+use Icinga\Module\Director\PropertyModifier\PropertyModifierCombine;
+use Icinga\Module\Director\Test\BaseTestCase;
+
+class PropertyModifierCombineTest extends BaseTestCase
+{
+ public function testBuildsTypicalHostServiceCombination()
+ {
+ $row = (object) array('host' => 'localhost', 'service' => 'ping');
+ $modifier = new PropertyModifierCombine();
+ $modifier->setSettings(array('pattern' => '${host}!${service}'));
+
+ $this->assertEquals(
+ 'localhost!ping',
+ $modifier->setRow($row)->transform('something')
+ );
+ }
+
+ public function testDoesNotFailForMissingProperties()
+ {
+ $row = (object) array('host' => 'localhost');
+ $modifier = new PropertyModifierCombine();
+ $modifier->setSettings(array('pattern' => '${host}!${service}'));
+
+ $this->assertEquals(
+ 'localhost!',
+ $modifier->setRow($row)->transform('something')
+ );
+ }
+
+ public function testDoesNotEvaluateVariablesFromDataSource()
+ {
+ $row = (object) array('host' => '${service}', 'service' => 'ping');
+ $modifier = new PropertyModifierCombine();
+ $modifier->setSettings(array('pattern' => '${host}!${service}'));
+
+ $this->assertEquals(
+ '${service}!ping',
+ $modifier->setRow($row)->transform('something')
+ );
+ }
+
+ public function testRequiresRow()
+ {
+ $modifier = new PropertyModifierCombine();
+ $this->assertTrue($modifier->requiresRow());
+ }
+}