class BaseFieldOverrideValidationTest

Same name and namespace in other branches
  1. 11.x core/tests/Drupal/KernelTests/Core/Entity/BaseFieldOverrideValidationTest.php \Drupal\KernelTests\Core\Entity\BaseFieldOverrideValidationTest

Tests validation of base_field_override entities.

@group Entity @group Validation

Hierarchy

Expanded class hierarchy of BaseFieldOverrideValidationTest

File

core/tests/Drupal/KernelTests/Core/Entity/BaseFieldOverrideValidationTest.php, line 18

Namespace

Drupal\KernelTests\Core\Entity
View source
class BaseFieldOverrideValidationTest extends ConfigEntityValidationTestBase {
  use ContentTypeCreationTrait;
  
  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'entity_test',
    'field',
    'node',
    'text',
    'user',
  ];
  
  /**
   * {@inheritdoc}
   */
  protected function setUp() : void {
    parent::setUp();
    $this->installConfig('node');
    $this->createContentType([
      'type' => 'one',
    ]);
    $this->createContentType([
      'type' => 'another',
    ]);
    EntityTestBundle::create([
      'id' => 'one',
    ])->save();
    EntityTestBundle::create([
      'id' => 'another',
    ])->save();
    $fields = $this->container
      ->get('entity_field.manager')
      ->getBaseFieldDefinitions('node');
    $this->entity = BaseFieldOverride::createFromBaseFieldDefinition($fields['uuid'], 'one');
    $this->entity
      ->save();
  }
  
  /**
   * Tests that the target bundle of the field is checked.
   */
  public function testTargetBundleMustExist() : void {
    $this->entity
      ->set('bundle', 'nope');
    $this->assertValidationErrors([
      '' => "The 'bundle' property cannot be changed.",
      'bundle' => "The 'nope' bundle does not exist on the 'node' entity type.",
    ]);
  }
  
  /**
   * {@inheritdoc}
   */
  public function testImmutableProperties(array $valid_values = []) : void {
    // If we don't clear the previous settings here, we will get unrelated
    // validation errors (in addition to the one we're expecting), because the
    // settings from the *old* field_type won't match the config schema for the
    // settings of the *new* field_type.
    $this->entity
      ->set('settings', []);
    parent::testImmutableProperties([
      'entity_type' => 'entity_test_with_bundle',
      'bundle' => 'another',
      'field_type' => 'string',
    ]);
  }
  
  /**
   * Tests that the field type plugin's existence is validated.
   */
  public function testFieldTypePluginIsValidated() : void {
    // The `field_type` property is immutable, so we need to clone the entity in
    // order to cleanly change its field_type property to some invalid value.
    $this->entity = $this->entity
      ->createDuplicate()
      ->set('field_type', 'invalid');
    $this->assertValidationErrors([
      'field_type' => "The 'invalid' plugin does not exist.",
    ]);
  }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
BaseFieldOverrideValidationTest::$modules protected static property Modules to install.
BaseFieldOverrideValidationTest::setUp protected function Overrides ConfigEntityValidationTestBase::setUp
BaseFieldOverrideValidationTest::testFieldTypePluginIsValidated public function Tests that the field type plugin's existence is validated.
BaseFieldOverrideValidationTest::testImmutableProperties public function Tests that immutable properties cannot be changed. Overrides ConfigEntityValidationTestBase::testImmutableProperties
BaseFieldOverrideValidationTest::testTargetBundleMustExist public function Tests that the target bundle of the field is checked.
ConfigEntityValidationTestBase::$entity protected property The config entity being tested.
ConfigEntityValidationTestBase::$hasLabel protected property Whether a config entity of this type has a label. 4
ConfigEntityValidationTestBase::$propertiesWithOptionalValues protected static property The config entity properties whose values are optional (set to NULL). 4
ConfigEntityValidationTestBase::$propertiesWithRequiredKeys protected static property The config entity mapping properties with >=1 required keys. 1
ConfigEntityValidationTestBase::assertValidationErrors protected function Asserts a set of validation errors is raised when the entity is validated.
ConfigEntityValidationTestBase::getMachineNameConstraints protected function Returns the validation constraints applied to the entity's ID.
ConfigEntityValidationTestBase::getPropertiesWithOptionalValues protected function Determines the config entity properties with optional values.
ConfigEntityValidationTestBase::getRequiredPropertyKeys protected function Determines the config entity mapping properties with required keys.
ConfigEntityValidationTestBase::isFullyValidatable protected function Whether the tested config entity type is fully validatable.
ConfigEntityValidationTestBase::providerConfigDependenciesValidation public static function Data provider for ::testConfigDependenciesValidation().
ConfigEntityValidationTestBase::providerInvalidMachineNameCharacters public static function Data provider for ::testInvalidMachineNameCharacters(). 5
ConfigEntityValidationTestBase::setLabel protected static function Sets the label of the given config entity. 1
ConfigEntityValidationTestBase::testConfigDependenciesValidation public function Tests validation of config dependencies.
ConfigEntityValidationTestBase::testEntityIsValid public function Ensures that the entity created in ::setUp() has no validation errors.
ConfigEntityValidationTestBase::testInvalidMachineNameCharacters public function Tests that the entity's ID is tested for invalid characters.
ConfigEntityValidationTestBase::testLabelValidation public function Tests validation of config entity's label. 3
ConfigEntityValidationTestBase::testLangcode public function Tests that the config entity's langcode is validated.
ConfigEntityValidationTestBase::testMachineNameLength public function Tests that the entity ID's length is validated if it is a machine name.
ConfigEntityValidationTestBase::testRequiredPropertyKeysMissing public function A property that is required must have a value (i.e. not NULL). 2
ConfigEntityValidationTestBase::testRequiredPropertyValuesMissing public function A property that is required must have a value (i.e. not NULL). 2

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