icingaweb2-module-director/test/php/library/Director/PropertyModifier/PropertyModifierCombineTest.php
Eric Lippmann b6af283732 License source files as GPL-3.0-or-later
Add SPDX license headers and mark source files as GPL-3.0-or-later to
preserve the option to relicense under later GPL versions.
2026-03-24 11:30:06 +01:00

54 lines
1.7 KiB
PHP

<?php
// SPDX-FileCopyrightText: 2018 Icinga GmbH <https://icinga.com>
// SPDX-License-Identifier: GPL-3.0-or-later
namespace Tests\Icinga\Module\Director\Objects;
use Icinga\Module\Director\PropertyModifier\PropertyModifierCombine;
use Icinga\Module\Director\Test\BaseTestCase;
class PropertyModifierCombineTest extends BaseTestCase
{
public function testBuildsTypicalHostServiceCombination()
{
$row = (object) array('host' => 'localhost', 'service' => 'ping');
$modifier = new PropertyModifierCombine();
$modifier->setSettings(array('pattern' => '${host}!${service}'));
$this->assertEquals(
'localhost!ping',
$modifier->setRow($row)->transform('something')
);
}
public function testDoesNotFailForMissingProperties()
{
$row = (object) array('host' => 'localhost');
$modifier = new PropertyModifierCombine();
$modifier->setSettings(array('pattern' => '${host}!${service}'));
$this->assertEquals(
'localhost!',
$modifier->setRow($row)->transform('something')
);
}
public function testDoesNotEvaluateVariablesFromDataSource()
{
$row = (object) array('host' => '${service}', 'service' => 'ping');
$modifier = new PropertyModifierCombine();
$modifier->setSettings(array('pattern' => '${host}!${service}'));
$this->assertEquals(
'${service}!ping',
$modifier->setRow($row)->transform('something')
);
}
public function testRequiresRow()
{
$modifier = new PropertyModifierCombine();
$this->assertTrue($modifier->requiresRow());
}
}