silverstripe-framework/tests/php/Forms/EnumFieldTest.php
Guy Sartorelli e2e32317d6
API Move various classes to more appropriate namespaces (#11370)
Also rename ViewableData to ModelData ahead of the template layer
lift-and-shift
2024-09-23 14:31:50 +12:00

60 lines
1.2 KiB
PHP

<?php
namespace SilverStripe\Forms\Tests;
use SilverStripe\Core\ArrayLib;
use SilverStripe\ORM\FieldType\DBEnum;
use SilverStripe\Dev\SapphireTest;
class EnumFieldTest extends SapphireTest
{
public function testAnyFieldIsPresentInSearchField()
{
$values = [
'Key' => 'Value'
];
$enumField = new DBEnum('testField', $values);
$searchField = $enumField->scaffoldSearchField();
$anyText = "(" . _t('SilverStripe\\ORM\\FieldType\\DBEnum.ANY', 'Any') . ")";
$this->assertEquals(true, $searchField->getHasEmptyDefault());
$this->assertEquals($anyText, $searchField->getEmptyString());
}
public function testEnumParsing()
{
$enum = new DBEnum(
'testField',
"
,
0,
Item1,
Item2,
Item 3,
Item-4,
item 5
still 5,
trailing comma,
"
);
$this->assertEquals(
ArrayLib::valuekey(
[
'',
'0',
'Item1',
'Item2',
'Item 3',
'Item-4',
'item 5
still 5',
'trailing comma'
]
),
$enum->enumValues()
);
}
}