function ValidSequenceKeysValidatorTest::testValidation
Tests the AllowedValues validation constraint validator.
For testing we define an integer with a set of allowed values.
Attributes
#[DataProvider('dataProvider')]
File
-
core/
tests/ Drupal/ KernelTests/ Core/ Validation/ ValidSequenceKeysValidatorTest.php, line 53
Class
- ValidSequenceKeysValidatorTest
- Tests ValidSequenceKeys validation constraint with both valid and invalid values.
Namespace
Drupal\KernelTests\Core\ValidationCode
public function testValidation(array $value, array $constraints, array $expected_violations, array $extra_constraints = []) : void {
/** @var \Drupal\Core\TypedData\MapDataDefinition $definition */
$definition = $this->typedData
->createDataDefinition('map');
$definition->setPropertyDefinition('keys', $this->typedConfigManager
->createDataDefinition('sequence'));
if (count($extra_constraints) > 0) {
foreach ($extra_constraints as $name => $settings) {
$definition->addConstraint($name, $settings);
}
}
$definition->addConstraint('ValidSequenceKeys', [
'constraints' => $constraints,
]);
$typed_data = $this->typedConfigManager
->create($definition);
$typed_data->setValue($value);
$violations = $typed_data->validate();
$violationMessages = [];
foreach ($violations as $violation) {
$violationMessages[] = (string) $violation->getMessage();
}
$this->assertEquals($expected_violations, $violationMessages, 'Validation did not pass.');
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.