You are here

public function ConfigEntityStaticCacheTest::testConfigOverride in Drupal 8

Same name and namespace in other branches
  1. 9 core/tests/Drupal/KernelTests/Core/Config/ConfigEntityStaticCacheTest.php \Drupal\KernelTests\Core\Config\ConfigEntityStaticCacheTest::testConfigOverride()
  2. 10 core/tests/Drupal/KernelTests/Core/Config/ConfigEntityStaticCacheTest.php \Drupal\KernelTests\Core\Config\ConfigEntityStaticCacheTest::testConfigOverride()

Tests that the static cache is sensitive to config overrides.

File

core/tests/Drupal/KernelTests/Core/Config/ConfigEntityStaticCacheTest.php, line 87

Class

ConfigEntityStaticCacheTest
Tests the entity static cache when used by config entities.

Namespace

Drupal\KernelTests\Core\Config

Code

public function testConfigOverride() {

  /** @var \Drupal\Core\Config\Entity\ConfigEntityStorage $storage */
  $storage = \Drupal::entityTypeManager()
    ->getStorage($this->entityTypeId);

  // Prime the cache prior to adding a config override.
  $storage
    ->load($this->entityId);

  // Add the config override, and ensure that what is loaded is correct
  // despite the prior cache priming.
  \Drupal::configFactory()
    ->addOverride(new ConfigOverrider());
  $entity_override = $storage
    ->load($this->entityId);
  $this
    ->assertIdentical($entity_override->label, 'Overridden label');

  // Load override free to ensure that loading the config entity again does
  // not return the overridden value.
  $entity_no_override = $storage
    ->loadOverrideFree($this->entityId);
  $this
    ->assertNotIdentical($entity_no_override->label, 'Overridden label');
  $this
    ->assertNotIdentical($entity_override->_loadStamp, $entity_no_override->_loadStamp);

  // Reload the entity and ensure the cache is used.
  $this
    ->assertIdentical($storage
    ->loadOverrideFree($this->entityId)->_loadStamp, $entity_no_override->_loadStamp);

  // Enable overrides and reload the entity and ensure the cache is used.
  $this
    ->assertIdentical($storage
    ->load($this->entityId)->_loadStamp, $entity_override->_loadStamp);
}