function ConfigEntityValidationTestBase::testImmutableProperties

Tests that immutable properties cannot be changed.

Parameters

mixed[] $valid_values: (optional) The values to set for the immutable properties, keyed by name. This should be used if the immutable properties can only accept certain values, e.g. valid plugin IDs.

5 calls to ConfigEntityValidationTestBase::testImmutableProperties()
BaseFieldOverrideValidationTest::testImmutableProperties in core/tests/Drupal/KernelTests/Core/Entity/BaseFieldOverrideValidationTest.php
EntityFormDisplayValidationTest::testImmutableProperties in core/tests/Drupal/KernelTests/Core/Entity/EntityFormDisplayValidationTest.php
EntityFormModeValidationTest::testImmutableProperties in core/tests/Drupal/KernelTests/Core/Entity/EntityFormModeValidationTest.php
EntityViewDisplayValidationTest::testImmutableProperties in core/tests/Drupal/KernelTests/Core/Entity/EntityViewDisplayValidationTest.php
EntityViewModeValidationTest::testImmutableProperties in core/tests/Drupal/KernelTests/Core/Entity/EntityViewModeValidationTest.php
11 methods override ConfigEntityValidationTestBase::testImmutableProperties()
BaseFieldOverrideValidationTest::testImmutableProperties in core/tests/Drupal/KernelTests/Core/Entity/BaseFieldOverrideValidationTest.php
ContentLanguageSettingsValidationTest::testImmutableProperties in core/modules/language/tests/src/Kernel/ContentLanguageSettingsValidationTest.php
Tests that immutable properties cannot be changed.
EditorValidationTest::testImmutableProperties in core/modules/editor/tests/src/Kernel/EditorValidationTest.php
Tests that immutable properties cannot be changed.
EntityFormDisplayValidationTest::testImmutableProperties in core/tests/Drupal/KernelTests/Core/Entity/EntityFormDisplayValidationTest.php
EntityFormModeValidationTest::testImmutableProperties in core/tests/Drupal/KernelTests/Core/Entity/EntityFormModeValidationTest.php

... See full list

File

core/tests/Drupal/KernelTests/Core/Config/ConfigEntityValidationTestBase.php, line 473

Class

ConfigEntityValidationTestBase
Base class for testing validation of config entities.

Namespace

Drupal\KernelTests\Core\Config

Code

public function testImmutableProperties(array $valid_values = []) : void {
  $constraints = $this->entity
    ->getEntityType()
    ->getConstraints();
  $this->assertNotEmpty($constraints['ImmutableProperties'], 'All config entities should have at least one immutable ID property.');
  foreach ($constraints['ImmutableProperties'] as $property_name) {
    $original_value = $this->entity
      ->get($property_name);
    $this->entity
      ->set($property_name, $valid_values[$property_name] ?? $this->randomMachineName());
    $this->assertValidationErrors([
      '' => "The '{$property_name}' property cannot be changed.",
    ]);
    $this->entity
      ->set($property_name, $original_value);
  }
}

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