summaryrefslogtreecommitdiffstats
path: root/test/php/library/Businessprocess/SimulationTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'test/php/library/Businessprocess/SimulationTest.php')
-rw-r--r--test/php/library/Businessprocess/SimulationTest.php47
1 files changed, 47 insertions, 0 deletions
diff --git a/test/php/library/Businessprocess/SimulationTest.php b/test/php/library/Businessprocess/SimulationTest.php
new file mode 100644
index 0000000..aefeb91
--- /dev/null
+++ b/test/php/library/Businessprocess/SimulationTest.php
@@ -0,0 +1,47 @@
+<?php
+
+namespace Tests\Icinga\Module\Businessprocess;
+
+use Icinga\Module\Businessprocess\Simulation;
+use Icinga\Module\Businessprocess\Test\BaseTestCase;
+
+class SimulationTest extends BaseTestCase
+{
+ public function testSimulationInstantiation()
+ {
+ $class = 'Icinga\\Module\\Businessprocess\\Simulation';
+ $this->assertInstanceOf(
+ $class,
+ Simulation::create()
+ );
+ }
+
+ public function testAppliedSimulation()
+ {
+ $data = (object) array(
+ 'state' => 0,
+ 'acknowledged' => false,
+ 'in_downtime' => false
+ );
+ $config = $this->makeInstance()->loadProcess('simple_with-header');
+ $simulation = Simulation::create(array(
+ 'host1;Hoststatus' => $data
+ ));
+ $parent = $config->getBpNode('singleHost');
+
+ $config->applySimulation($simulation);
+ $this->assertEquals(
+ 'OK',
+ $parent->getStateName()
+ );
+
+ $parent->clearState();
+ $data->state = 1;
+ $simulation->set('host1;Hoststatus', $data);
+ $config->applySimulation($simulation);
+ $this->assertEquals(
+ 'CRITICAL',
+ $parent->getStateName()
+ );
+ }
+}