function EntityApiTest::testLoadMultiple
Same name in other branches
- 9 core/tests/Drupal/KernelTests/Core/Entity/EntityApiTest.php \Drupal\KernelTests\Core\Entity\EntityApiTest::testLoadMultiple()
- 8.9.x core/tests/Drupal/KernelTests/Core/Entity/EntityApiTest.php \Drupal\KernelTests\Core\Entity\EntityApiTest::testLoadMultiple()
- 11.x core/tests/Drupal/KernelTests/Core/Entity/EntityApiTest.php \Drupal\KernelTests\Core\Entity\EntityApiTest::testLoadMultiple()
Tests that the Entity storage loads the entities in the correct order.
Entities should be returned in the same order as the passed IDs.
File
-
core/
tests/ Drupal/ KernelTests/ Core/ Entity/ EntityApiTest.php, line 150
Class
- EntityApiTest
- Tests basic CRUD functionality.
Namespace
Drupal\KernelTests\Core\EntityCode
public function testLoadMultiple() : void {
// Entity load.
$storage = $this->container
->get('entity_type.manager')
->getStorage('entity_test');
$ids = [];
$entity = $storage->create([
'name' => 'test',
]);
$entity->save();
$ids[] = $entity->id();
$entity = $storage->create([
'name' => 'test2',
]);
$entity->save();
$ids[] = $entity->id();
// We load the entities in an initial and reverse order, with both static
// cache in place and reset, to ensure we always get the same result.
$entities = $storage->loadMultiple($ids);
$this->assertEquals($ids, array_keys($entities));
// Reverse the order and load again.
$ids = array_reverse($ids);
$entities = $storage->loadMultiple($ids);
$this->assertEquals($ids, array_keys($entities));
// Reverse the order again, reset the cache and load again.
$storage->resetCache();
$ids = array_reverse($ids);
$entities = $storage->loadMultiple($ids);
$this->assertEquals($ids, array_keys($entities));
// Entity revision load.
$storage = $this->container
->get('entity_type.manager')
->getStorage('entity_test_rev');
$ids = [];
$entity = $storage->create([
'name' => 'test_rev',
]);
$entity->save();
$ids[] = $entity->getRevisionId();
$revision = $storage->createRevision($entity, TRUE);
$revision->save();
$ids[] = $revision->getRevisionId();
$entities = $storage->loadMultipleRevisions($ids);
$this->assertEquals($ids, array_keys($entities));
// Reverse the order and load again.
$ids = array_reverse($ids);
$entities = $storage->loadMultipleRevisions($ids);
$this->assertEquals($ids, array_keys($entities));
// Reverse the order again, reset the cache and load again.
$ids = array_reverse($ids);
$storage->resetCache();
$entities = $storage->loadMultipleRevisions($ids);
$this->assertEquals($ids, array_keys($entities));
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.