function SqlContentEntityStorageTest::testLoadMultiplePersistentCacheMiss
Same name in other branches
- 9 core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageTest.php \Drupal\Tests\Core\Entity\Sql\SqlContentEntityStorageTest::testLoadMultiplePersistentCacheMiss()
- 8.9.x core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageTest.php \Drupal\Tests\Core\Entity\Sql\SqlContentEntityStorageTest::testLoadMultiplePersistentCacheMiss()
- 11.x core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageTest.php \Drupal\Tests\Core\Entity\Sql\SqlContentEntityStorageTest::testLoadMultiplePersistentCacheMiss()
@covers ::doLoadMultiple @covers ::buildCacheId @covers ::getFromPersistentCache @covers ::setPersistentCache
File
-
core/
tests/ Drupal/ Tests/ Core/ Entity/ Sql/ SqlContentEntityStorageTest.php, line 1276
Class
- SqlContentEntityStorageTest
- @coversDefaultClass \Drupal\Core\Entity\Sql\SqlContentEntityStorage @group Entity
Namespace
Drupal\Tests\Core\Entity\SqlCode
public function testLoadMultiplePersistentCacheMiss() : void {
$this->setUpModuleHandlerNoImplementations();
$id = 1;
$entity = $this->getMockBuilder('\\Drupal\\Tests\\Core\\Entity\\Sql\\SqlContentEntityStorageTestEntityInterface')
->getMockForAbstractClass();
$entity->expects($this->any())
->method('id')
->willReturn($id);
$this->entityType
->expects($this->any())
->method('isPersistentlyCacheable')
->willReturn(TRUE);
$this->entityType
->expects($this->atLeastOnce())
->method('id')
->willReturn($this->entityTypeId);
// In case of a cache miss, the entity is loaded from the storage and then
// set in the cache.
$key = 'values:' . $this->entityTypeId . ':1';
$this->cache
->expects($this->once())
->method('getMultiple')
->with([
$key,
])
->willReturn([]);
$this->cache
->expects($this->once())
->method('setMultiple')
->with([
$key => [
'data' => $entity,
'tags' => [
$this->entityTypeId . '_values',
'entity_field_info',
],
],
]);
$this->entityTypeManager
->getActiveDefinition($this->entityType
->id())
->willReturn($this->entityType);
$entity_storage = $this->getMockBuilder('Drupal\\Core\\Entity\\Sql\\SqlContentEntityStorage')
->setConstructorArgs([
$this->entityType,
$this->connection,
$this->entityFieldManager
->reveal(),
$this->cache,
$this->languageManager,
new MemoryCache(new Time()),
$this->entityTypeBundleInfo,
$this->entityTypeManager
->reveal(),
])
->onlyMethods([
'getFromStorage',
'invokeStorageLoadHook',
'initTableLayout',
])
->getMock();
$entity_storage->method('invokeStorageLoadHook')
->willReturn(NULL);
$entity_storage->method('initTableLayout')
->willReturn(NULL);
$entity_storage->expects($this->once())
->method('getFromStorage')
->with([
$id,
])
->willReturn([
$id => $entity,
]);
$entities = $entity_storage->loadMultiple([
$id,
]);
$this->assertEquals($entity, $entities[$id]);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.