diff options
Diffstat (limited to 'library/Eventdb/Test')
-rw-r--r-- | library/Eventdb/Test/BaseTestCase.php | 27 | ||||
-rw-r--r-- | library/Eventdb/Test/Bootstrap.php | 35 | ||||
-rw-r--r-- | library/Eventdb/Test/PseudoHost.php | 15 | ||||
-rw-r--r-- | library/Eventdb/Test/PseudoMonitoringBackend.php | 14 | ||||
-rw-r--r-- | library/Eventdb/Test/PseudoService.php | 16 |
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; + } +} |