summaryrefslogtreecommitdiffstats
path: root/library/Eventdb/Test
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--library/Eventdb/Test/BaseTestCase.php27
-rw-r--r--library/Eventdb/Test/Bootstrap.php35
-rw-r--r--library/Eventdb/Test/PseudoHost.php15
-rw-r--r--library/Eventdb/Test/PseudoMonitoringBackend.php14
-rw-r--r--library/Eventdb/Test/PseudoService.php16
5 files changed, 107 insertions, 0 deletions
diff --git a/library/Eventdb/Test/BaseTestCase.php b/library/Eventdb/Test/BaseTestCase.php
new file mode 100644
index 0000000..d24ea49
--- /dev/null
+++ b/library/Eventdb/Test/BaseTestCase.php
@@ -0,0 +1,27 @@
+<?php
+
+namespace Icinga\Module\Eventdb\Test;
+
+use Icinga\Application\Icinga;
+use PHPUnit_Framework_TestCase;
+
+abstract class BaseTestCase extends PHPUnit_Framework_TestCase
+{
+ private static $app;
+
+ private $db;
+
+ public function setUp()
+ {
+ $this->app();
+ }
+
+ protected function app()
+ {
+ if (self::$app === null) {
+ self::$app = Icinga::app();
+ }
+
+ return self::$app;
+ }
+}
diff --git a/library/Eventdb/Test/Bootstrap.php b/library/Eventdb/Test/Bootstrap.php
new file mode 100644
index 0000000..848b360
--- /dev/null
+++ b/library/Eventdb/Test/Bootstrap.php
@@ -0,0 +1,35 @@
+<?php
+
+namespace Icinga\Module\Eventdb\Test;
+
+use Icinga\Application\EmbeddedWeb;
+use Icinga\Authentication\Auth;
+use Icinga\User;
+
+class Bootstrap
+{
+ public static function web($basedir = null)
+ {
+ error_reporting(E_ALL | E_STRICT);
+ if ($basedir === null) {
+ $basedir = dirname(dirname(dirname(__DIR__)));
+ }
+ $testsDir = $basedir . '/test';
+ require_once 'Icinga/Application/EmbeddedWeb.php';
+
+ if (array_key_exists('ICINGAWEB_CONFIGDIR', $_SERVER)) {
+ $configDir = $_SERVER['ICINGAWEB_CONFIGDIR'];
+ } else {
+ $configDir = $testsDir . '/config';
+ }
+
+ EmbeddedWeb::start($testsDir, $configDir)
+ ->getModuleManager()
+ ->loadModule('eventdb', $basedir)
+ ->loadModule('monitoring', $basedir . '/vendor/icingaweb2/modules/monitoring');
+
+ $user = new User('icingaadmin');
+ $user->setPermissions(array('*'));
+ Auth::getInstance()->setAuthenticated($user);
+ }
+}
diff --git a/library/Eventdb/Test/PseudoHost.php b/library/Eventdb/Test/PseudoHost.php
new file mode 100644
index 0000000..7ebcd8c
--- /dev/null
+++ b/library/Eventdb/Test/PseudoHost.php
@@ -0,0 +1,15 @@
+<?php
+
+namespace Icinga\Module\Eventdb\Test;
+
+use Icinga\Module\Monitoring\Object\Host;
+
+class PseudoHost extends Host
+{
+ public function provideCustomVars($vars)
+ {
+ $this->properties = new \stdClass;
+ $this->hostVariables = $this->customvars = $vars;
+ return $this;
+ }
+}
diff --git a/library/Eventdb/Test/PseudoMonitoringBackend.php b/library/Eventdb/Test/PseudoMonitoringBackend.php
new file mode 100644
index 0000000..3ad6de5
--- /dev/null
+++ b/library/Eventdb/Test/PseudoMonitoringBackend.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace Icinga\Module\Eventdb\Test;
+
+use Icinga\Data\ConfigObject;
+use Icinga\Module\Monitoring\Backend\MonitoringBackend;
+
+class PseudoMonitoringBackend extends MonitoringBackend
+{
+ public static function dummy()
+ {
+ return new static('dummy', new ConfigObject());
+ }
+}
diff --git a/library/Eventdb/Test/PseudoService.php b/library/Eventdb/Test/PseudoService.php
new file mode 100644
index 0000000..737a8ac
--- /dev/null
+++ b/library/Eventdb/Test/PseudoService.php
@@ -0,0 +1,16 @@
+<?php
+
+namespace Icinga\Module\Eventdb\Test;
+
+use Icinga\Module\Monitoring\Object\Service;
+
+class PseudoService extends Service
+{
+ public function provideCustomVars($vars)
+ {
+ $this->properties = new \stdClass;
+ $this->serviceVariables = $this->customvars = $vars;
+ $this->hostVariables = array();
+ return $this;
+ }
+}