mirror of
https://github.com/Icinga/icingaweb2-module-director.git
synced 2025-07-29 16:54:06 +02:00
IcingaTimePeriod: Update test for include/exclude
This commit is contained in:
parent
c86c168e43
commit
282d78c877
@ -9,6 +9,8 @@ class IcingaTimePeriodTest extends BaseTestCase
|
|||||||
{
|
{
|
||||||
protected $testPeriodName = '___TEST___timeperiod';
|
protected $testPeriodName = '___TEST___timeperiod';
|
||||||
|
|
||||||
|
protected $createdNames = [];
|
||||||
|
|
||||||
public function testWhetherUpdatedTimeperiodsAreCorrectlyStored()
|
public function testWhetherUpdatedTimeperiodsAreCorrectlyStored()
|
||||||
{
|
{
|
||||||
if ($this->skipForMissingDb()) {
|
if ($this->skipForMissingDb()) {
|
||||||
@ -54,12 +56,15 @@ class IcingaTimePeriodTest extends BaseTestCase
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function createTestPeriod()
|
protected function createTestPeriod($suffix = '', $testRanges = [])
|
||||||
{
|
{
|
||||||
$db = $this->getDb();
|
$db = $this->getDb();
|
||||||
|
$name = $this->testPeriodName . $suffix;
|
||||||
|
|
||||||
|
$this->createdNames[] = $name;
|
||||||
$object = IcingaTimePeriod::create(
|
$object = IcingaTimePeriod::create(
|
||||||
array(
|
array(
|
||||||
'object_name' => $this->testPeriodName,
|
'object_name' => $name,
|
||||||
'object_type' => 'object'
|
'object_type' => 'object'
|
||||||
),
|
),
|
||||||
$db
|
$db
|
||||||
@ -67,11 +72,13 @@ class IcingaTimePeriodTest extends BaseTestCase
|
|||||||
$object->store();
|
$object->store();
|
||||||
$ranges = $object->ranges();
|
$ranges = $object->ranges();
|
||||||
|
|
||||||
$testRanges = array(
|
if (empty($testRanges)) {
|
||||||
'monday' => '00:00-24:00',
|
$testRanges = array(
|
||||||
'tuesday' => '00:00-24:00',
|
'monday' => '00:00-24:00',
|
||||||
'wednesday' => '00:00-24:00',
|
'tuesday' => '00:00-24:00',
|
||||||
);
|
'wednesday' => '00:00-24:00',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
$ranges->set($testRanges);
|
$ranges->set($testRanges);
|
||||||
$object->store();
|
$object->store();
|
||||||
@ -98,16 +105,80 @@ class IcingaTimePeriodTest extends BaseTestCase
|
|||||||
$this->assertFalse($period->isActive(strtotime('2016-05-19 10:00:00')));
|
$this->assertFalse($period->isActive(strtotime('2016-05-19 10:00:00')));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function loadTestPeriod()
|
public function testPeriodWithIncludes()
|
||||||
{
|
{
|
||||||
return IcingaTimePeriod::load($this->testPeriodName, $this->getDb());
|
$period = $this->createTestPeriod();
|
||||||
|
$include = $this->createTestPeriod('include', ['thursday' => '00:00-24:00']);
|
||||||
|
|
||||||
|
$period->set('includes', $include->object_name);
|
||||||
|
$period->store();
|
||||||
|
|
||||||
|
// Wednesday:
|
||||||
|
$this->assertTrue($period->isActive(strtotime('2016-05-18 10:00:00')));
|
||||||
|
// Thursday:
|
||||||
|
$this->assertTrue($period->isActive(strtotime('2016-05-19 10:00:00')));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPeriodWithExcludes()
|
||||||
|
{
|
||||||
|
$period = $this->createTestPeriod();
|
||||||
|
$exclude = $this->createTestPeriod('exclude', ['wednesday' => '00:00-24:00']);
|
||||||
|
|
||||||
|
$period->set('excludes', $exclude->object_name);
|
||||||
|
$period->store();
|
||||||
|
|
||||||
|
// Wednesday:
|
||||||
|
$this->assertFalse($period->isActive(strtotime('2016-05-18 10:00:00')));
|
||||||
|
// Thursday:
|
||||||
|
$this->assertFalse($period->isActive(strtotime('2016-05-19 10:00:00')));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPeriodPreferingIncludes()
|
||||||
|
{
|
||||||
|
$period = $this->createTestPeriod();
|
||||||
|
$include = $this->createTestPeriod('include', ['thursday' => '00:00-24:00']);
|
||||||
|
$exclude = $this->createTestPeriod('exclude', ['thursday' => '00:00-24:00']);
|
||||||
|
|
||||||
|
$period->set('includes', $include->object_name);
|
||||||
|
$period->set('excludes', $exclude->object_name);
|
||||||
|
$period->store();
|
||||||
|
|
||||||
|
// Wednesday:
|
||||||
|
$this->assertTrue($period->isActive(strtotime('2016-05-18 10:00:00')));
|
||||||
|
// Thursday:
|
||||||
|
$this->assertTrue($period->isActive(strtotime('2016-05-19 10:00:00')));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPeriodPreferingExcludes()
|
||||||
|
{
|
||||||
|
$period = $this->createTestPeriod();
|
||||||
|
$include = $this->createTestPeriod('include', ['thursday' => '00:00-24:00']);
|
||||||
|
$exclude = $this->createTestPeriod('exclude', ['thursday' => '00:00-24:00']);
|
||||||
|
|
||||||
|
$period->set('prefer_includes', false);
|
||||||
|
$period->set('includes', $include->object_name);
|
||||||
|
$period->set('excludes', $exclude->object_name);
|
||||||
|
$period->store();
|
||||||
|
|
||||||
|
// Wednesday:
|
||||||
|
$this->assertTrue($period->isActive(strtotime('2016-05-18 10:00:00')));
|
||||||
|
// Thursday:
|
||||||
|
$this->assertFalse($period->isActive(strtotime('2016-05-19 10:00:00')));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function loadTestPeriod($suffix = '')
|
||||||
|
{
|
||||||
|
return IcingaTimePeriod::load($this->testPeriodName . $suffix, $this->getDb());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function tearDown()
|
public function tearDown()
|
||||||
{
|
{
|
||||||
$db = $this->getDb();
|
$db = $this->getDb();
|
||||||
if (IcingaTimePeriod::exists($this->testPeriodName, $db)) {
|
|
||||||
IcingaTimePeriod::load($this->testPeriodName, $db)->delete();
|
foreach ($this->createdNames as $name) {
|
||||||
|
if (IcingaTimePeriod::exists($name, $db)) {
|
||||||
|
IcingaTimePeriod::load($name, $db)->delete();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user