function EntityValidationTest::testCompositeConstraintValidation
Tests composite constraints.
File
- 
              core/tests/ Drupal/ KernelTests/ Core/ Entity/ EntityValidationTest.php, line 200 
Class
- EntityValidationTest
- Tests the Entity Validation API.
Namespace
Drupal\KernelTests\Core\EntityCode
public function testCompositeConstraintValidation() {
  $entity = $this->createTestEntity('entity_test_composite_constraint');
  $violations = $entity->validate();
  $this->assertEquals(0, $violations->count());
  // Trigger violation condition.
  $entity->name->value = 'test';
  $entity->type->value = 'test2';
  $violations = $entity->validate();
  $this->assertEquals(1, $violations->count());
  // Make sure we can determine this is composite constraint.
  $constraint = $violations[0]->getConstraint();
  $this->assertInstanceOf(CompositeConstraintBase::class, $constraint);
  $this->assertEquals('type', $violations[0]->getPropertyPath());
  /** @var \Drupal\Core\Entity\Plugin\Validation\Constraint\CompositeConstraintBase $constraint */
  $this->assertEquals([
    'name',
    'type',
  ], $constraint->coversFields(), 'Information about covered fields can be retrieved.');
}Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.
