icingaweb2/test/php/library/Icinga/Protocol/Statusdat/Component/StatusdatComponentTest.php

66 lines
2.2 KiB
PHP
Raw Normal View History

<?php
namespace Tests\Icinga\Protocol\Statusdat;
require_once("Zend/Config.php");;
require_once("Zend/Log.php");;
use \Icinga\Protocol\Statusdat as SD;
/**
* This is a high level test for the whole statusdat component, i.e. all parts put together
* and called like they would be in a real situation. This should work when all isolated tests have passed.
*/
class StatusdatComponentTest extends \PHPUnit_Framework_TestCase
{
public function getReader() {
require_once(dirname(__FILE__)."/../StatusdatTestLoader.php");
StatusdatTestLoader::requireLibrary();
$reader = new SD\Reader(new \Zend_Config(array(
"status_file" => dirname(__FILE__)."/status.dat",
"objects_file" => dirname(__FILE__)."/objects.cache"
)),null,true);
return $reader;
}
public function testServicegroupFilterFromService() {
$r = $this->getReader();
$group = array(array('a1','b2'));
$result = $r->select()->from("services")->where("group IN ?",$group)->getResult();
$this->assertCount(2,$result);
foreach($result as $obj) {
$this->assertTrue(is_object($obj));
}
}
public function testServicegroupFilterFromHost() {
$r = $this->getReader();
$group = array(array('a1','b2'));
$result = $r->select()->from("hosts")->where("services.group IN ?",$group)->getResult();
$this->assertCount(2,$result);
foreach($result as $obj) {
$this->assertTrue(is_object($obj));
}
}
public function testHostgroupFilterFromHost() {
$r = $this->getReader();
$group = array(array('exc-hostb'));
$result = $r->select()->from("hosts")->where("group IN ?",$group)->getResult();
$this->assertCount(2,$result);
foreach($result as $obj) {
$this->assertTrue(is_object($obj));
}
}
public function testHostgroupFilterFromService() {
$r = $this->getReader();
$group = array(array('exc-hostb'));
$result = $r->select()->from("services")->where("host.group IN ?",$group)->getResult();
$this->assertCount(6,$result);
foreach($result as $obj) {
$this->assertTrue(is_object($obj));
}
}
}