function BundleConstraintValidatorTest::assertValidation
Executes the BundleConstraintValidator test for a given bundle.
@internal
Parameters
string|array $bundle: Bundle/bundles to use as constraint option.
1 call to BundleConstraintValidatorTest::assertValidation()
- BundleConstraintValidatorTest::testValidation in core/
tests/ Drupal/ KernelTests/ Core/ Entity/ BundleConstraintValidatorTest.php  - Tests bundle constraint validation.
 
File
- 
              core/
tests/ Drupal/ KernelTests/ Core/ Entity/ BundleConstraintValidatorTest.php, line 56  
Class
- BundleConstraintValidatorTest
 - Tests validation constraints for BundleConstraintValidator.
 
Namespace
Drupal\KernelTests\Core\EntityCode
protected function assertValidation($bundle) : void {
  // Create a typed data definition with a Bundle constraint.
  $definition = DataDefinition::create('entity_reference')->addConstraint('Bundle', $bundle);
  // Test the validation.
  $node = $this->container
    ->get('entity_type.manager')
    ->getStorage('node')
    ->create([
    'type' => 'foo',
  ]);
  $typed_data = $this->typedData
    ->create($definition, $node);
  $violations = $typed_data->validate();
  $this->assertEquals(0, $violations->count(), 'Validation passed for correct value.');
  // Test the validation when an invalid value is passed.
  $page_node = $this->container
    ->get('entity_type.manager')
    ->getStorage('node')
    ->create([
    'type' => 'baz',
  ]);
  $typed_data = $this->typedData
    ->create($definition, $page_node);
  $violations = $typed_data->validate();
  $this->assertEquals(1, $violations->count(), 'Validation failed for incorrect value.');
  // Make sure the information provided by a violation is correct.
  $violation = $violations[0];
  $this->assertEquals(sprintf('The entity must be of bundle %s.', implode(', ', (array) $bundle)), $violation->getMessage(), 'The message for invalid value is correct.');
  $this->assertEquals($typed_data, $violation->getRoot(), 'Violation root is correct.');
  $this->assertEquals($page_node, $violation->getInvalidValue(), 'The invalid value is set correctly in the violation.');
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.