Files
iTop/test/core/UniquenessConstraintTest.php
Pierre Goiffon 8578d18e7f Merge remote-tracking branch 'origin/support/2.7' into support/3.0
# Conflicts:
#	core/cmdbsource.class.inc.php
#	core/config.class.inc.php
#	core/displayablegraph.class.inc.php
#	core/log.class.inc.php
#	datamodels/2.x/itop-config-mgmt/dictionaries/tr.dict.itop-config-mgmt.php
#	datamodels/2.x/itop-knownerror-mgmt/dictionaries/tr.dict.itop-knownerror-mgmt.php
#	datamodels/2.x/itop-service-mgmt/dictionaries/tr.dict.itop-service-mgmt.php
#	datamodels/2.x/itop-tickets/tr.dict.itop-tickets.php
#	datamodels/2.x/itop-welcome-itil/tr.dict.itop-welcome-itil.php
#	dictionaries/tr.dictionary.itop.core.php
#	dictionaries/tr.dictionary.itop.ui.php
#	pages/UI.php
#	setup/itopdesignformat.class.inc.php
#	test/core/LogAPITest.php
#	test/integration/iTopModulesPhpVersionChecklistTest.php
#	test/postbuild_integration/SetupCssIntegrityChecklistTest.php
#	test/postbuild_integration/iTopModuleXmlInstallationChecklistTest.php
#	test/status/StatusTest.php
2022-01-10 16:15:00 +01:00

79 lines
1.6 KiB
PHP

<?php
namespace Combodo\iTop\Test\UnitTest\Core;
use Combodo\iTop\Test\UnitTest\ItopTestCase;
use CoreUnexpectedValue;
use MetaModel;
/**
* Class UniquenessConstraintTest
*
* @since 2.6.0 N°659 uniqueness constraint
*
* @package Combodo\iTop\Test\UnitTest\Core
*/
class UniquenessConstraintTest extends ItopTestCase
{
protected function setUp()
{
parent::setUp();
require_once(APPROOT.'/core/metamodel.class.php');
}
/**
* @covers MetaModel::CheckUniquenessRuleValidity
* @dataProvider uniquenessRuleValidityCheckProvider
*
* @param bool $bIsRuleShouldBeValid
* @param bool $bIsRuleOverride
* @param array $aRuleProperties
*/
public function testUniquenessRuleValidityCheck($bIsRuleShouldBeValid, $bIsRuleOverride, $aRuleProperties)
{
$bRuleValidResult = true;
try
{
MetaModel::CheckUniquenessRuleValidity($aRuleProperties, $bIsRuleOverride);
}
catch (CoreUnexpectedValue $e)
{
$bRuleValidResult = false;
}
$this->assertEquals($bIsRuleShouldBeValid, $bRuleValidResult, "Validity test returned $bRuleValidResult");
}
public function uniquenessRuleValidityCheckProvider()
{
return array(
'simplest rule' => array(true, false, array('attributes' => array('name'))),
'with all properties' => array(
true,
false,
array(
'attributes' => array('name'),
'filter' => 'name != \'\'',
'disabled' => false,
'is_blocking' => true,
),
),
'only disabled key without ancestor' => array(
false,
false,
array(
'disabled' => true,
),
),
'only disabled key with ancestor' => array(
true,
true,
array(
'disabled' => true,
),
),
);
}
}