Files
iTop/tests/php-unit-tests/unitary-tests/core/ValueSetDefinitionTest.php
2024-05-06 18:35:31 +02:00

56 lines
1.6 KiB
PHP

<?php
/*
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
namespace Combodo\iTop\Test\UnitTest\Core;
use Combodo\iTop\Test\UnitTest\ItopTestCase;
use ValueSetDefinition;
use ValueSetEnum;
class ValueSetDefinitionTest extends ItopTestCase
{
/**
* @param string $sValueSetDefClass
* @param array $aInputArgs
* @param array $aExpectedData
*
* @return void
* @dataProvider GetValuesProvider
* @covers \ValueSetDefinition::GetValues
*/
public function testGetValues(string $sValueSetDefClass, array $aInputArgs, array $aExpectedData)
{
$oValueSetDef = new $sValueSetDefClass(... $aInputArgs);
$aTestedData = $oValueSetDef->GetValues([]);
// Check that both arrays have the values *sorted* in the same order
$aExpectedValues = array_values($aExpectedData);
$aTestedValues = array_values($aTestedData);
$this->assertEquals($aExpectedValues, $aTestedValues, 'Values are not ordered as expected');
}
public function GetValuesProvider(): array
{
return [
'ValueSetEnum: Preserved order' => [
ValueSetEnum::class,
['new,assigned,resolved'],
['new' => 'new', 'assigned' => 'assigned', 'resolved' => 'resolved'],
],
'ValueSetEnum: Preserved order' => [
ValueSetEnum::class,
['new,assigned,resolved'],
['new' => 'new', 'assigned' => 'assigned', 'resolved' => 'resolved'],
],
'ValueSetEnum: Reorder alphabetically' => [
ValueSetEnum::class,
['new,assigned,resolved', true],
['assigned' => 'assigned', 'new' => 'new', 'resolved' => 'resolved'],
],
];
}
}