function EntityTranslationTest::testTranslationObjectCache
Tests the translation object cache.
File
- 
              core/tests/ Drupal/ KernelTests/ Core/ Entity/ EntityTranslationTest.php, line 1005 
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)));
}Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.
