public function EntityTranslationTest::testTranslationObjectCache in Drupal 10
Same name and namespace in other branches
- 8 core/tests/Drupal/KernelTests/Core/Entity/EntityTranslationTest.php \Drupal\KernelTests\Core\Entity\EntityTranslationTest::testTranslationObjectCache()
- 9 core/tests/Drupal/KernelTests/Core/Entity/EntityTranslationTest.php \Drupal\KernelTests\Core\Entity\EntityTranslationTest::testTranslationObjectCache()
Tests the translation object cache.
File
- core/
tests/ Drupal/ KernelTests/ Core/ Entity/ EntityTranslationTest.php, line 1007
Class
- EntityTranslationTest
- Tests entity translation functionality.
Namespace
Drupal\KernelTests\Core\EntityCode
public function testTranslationObjectCache() {
$default_langcode = $this->langcodes[1];
$translation_langcode = $this->langcodes[2];
$entity = EntityTestMul::create([
'name' => 'test',
'langcode' => $default_langcode,
]);
$entity
->save();
$entity
->addTranslation($translation_langcode)
->save();
// Test that the default translation object is put into the translation
// object cache when a new translation object is initialized.
$entity = \Drupal::entityTypeManager()
->getStorage($entity
->getEntityTypeId())
->loadUnchanged($entity
->id());
$default_translation_spl_object_hash = spl_object_hash($entity);
$this
->assertEquals($default_translation_spl_object_hash, spl_object_hash($entity
->getTranslation($translation_langcode)
->getTranslation($default_langcode)));
// Test that non-default translations are always served from the translation
// object cache.
$entity = \Drupal::entityTypeManager()
->getStorage($entity
->getEntityTypeId())
->loadUnchanged($entity
->id());
$this
->assertEquals(spl_object_hash($entity
->getTranslation($translation_langcode)), spl_object_hash($entity
->getTranslation($translation_langcode)));
$this
->assertEquals(spl_object_hash($entity
->getTranslation($translation_langcode)), spl_object_hash($entity
->getTranslation($translation_langcode)
->getTranslation($default_langcode)
->getTranslation($translation_langcode)));
}