function RecursiveContextualValidatorTest::testBasicValidateWithConstraint

Same name and namespace in other branches
  1. 11.x core/tests/Drupal/Tests/Core/TypedData/RecursiveContextualValidatorTest.php \Drupal\Tests\Core\TypedData\RecursiveContextualValidatorTest::testBasicValidateWithConstraint()
  2. 10 core/tests/Drupal/Tests/Core/TypedData/RecursiveContextualValidatorTest.php \Drupal\Tests\Core\TypedData\RecursiveContextualValidatorTest::testBasicValidateWithConstraint()
  3. 8.9.x core/tests/Drupal/Tests/Core/TypedData/RecursiveContextualValidatorTest.php \Drupal\Tests\Core\TypedData\RecursiveContextualValidatorTest::testBasicValidateWithConstraint()

@covers ::validate

File

core/tests/Drupal/Tests/Core/TypedData/RecursiveContextualValidatorTest.php, line 121

Class

RecursiveContextualValidatorTest
@coversDefaultClass \Drupal\Core\TypedData\Validation\RecursiveContextualValidator[[api-linebreak]] @group typedData

Namespace

Drupal\Tests\Core\TypedData

Code

public function testBasicValidateWithConstraint() {
  $typed_data = $this->typedDataManager
    ->create(DataDefinition::create('string')->addConstraint('Callback', [
    'callback' => function ($value, ExecutionContextInterface $context) {
      $context->addViolation('test violation: ' . $value);
    },
  ]));
  $typed_data->setValue('foo');
  $violations = $this->recursiveValidator
    ->validate($typed_data);
  $this->assertCount(1, $violations);
  // Ensure that the right value is passed into the validator.
  $this->assertEquals('test violation: foo', $violations->get(0)
    ->getMessage());
}

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