function AtLeastOneOfConstraintValidatorTest::testValidation

Tests the AllowedValues validation constraint validator.

For testing we define an integer with a set of allowed values.

@dataProvider dataProvider

File

core/tests/Drupal/KernelTests/Core/Validation/AtLeastOneOfConstraintValidatorTest.php, line 42

Class

AtLeastOneOfConstraintValidatorTest
Tests AtLeastOneOf validation constraint with both valid and invalid values.

Namespace

Drupal\KernelTests\Core\Validation

Code

public function testValidation($type, $value, $at_least_one_of_constraints, $expectedViolations, $extra_constraints = []) : void {
  // Create a definition that specifies some AllowedValues.
  $definition = DataDefinition::create($type);
  if (count($extra_constraints) > 0) {
    foreach ($extra_constraints as $name => $settings) {
      $definition->addConstraint($name, $settings);
    }
  }
  $definition->addConstraint('AtLeastOneOf', [
    'constraints' => $at_least_one_of_constraints,
  ]);
  // Test the validation.
  $typed_data = $this->typedData
    ->create($definition, $value);
  $violations = $typed_data->validate();
  $violationMessages = [];
  foreach ($violations as $violation) {
    $violationMessages[] = (string) $violation->getMessage();
  }
  $this->assertEquals($expectedViolations, $violationMessages, 'Validation passed for correct value.');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.