function LruMemoryCacheTest::testInvalidate
Tests invalidation from the LRU memory cache.
@covers ::invalidate @covers ::invalidateMultiple @covers ::invalidateTags
File
-
core/
tests/ Drupal/ Tests/ Core/ Cache/ LruMemoryCacheTest.php, line 213
Class
- LruMemoryCacheTest
- @coversDefaultClass \Drupal\Core\Cache\MemoryCache\LruMemoryCache @group Cache
Namespace
Drupal\Tests\Core\CacheCode
public function testInvalidate() : void {
$lru_cache = $this->getLruMemoryCache(3);
$cache_data = [
[
'sparrow',
'sparrow',
],
[
'pigeon',
'pigeon',
],
[
'crow',
'crow',
],
];
foreach ($cache_data as $items) {
$lru_cache->set($items[0], $items[1]);
}
$this->assertCacheData($lru_cache, [
[
'sparrow',
'sparrow',
],
[
'pigeon',
'pigeon',
],
[
'crow',
'crow',
],
]);
$lru_cache->invalidate('crow');
$this->assertCacheData($lru_cache, [
[
'crow',
'crow',
],
[
'sparrow',
'sparrow',
],
[
'pigeon',
'pigeon',
],
]);
$this->assertFalse($lru_cache->get('crow'));
// Ensure that getting an invalid cache does not move it to the end of the
// array.
$this->assertSame('crow', $lru_cache->get('crow', TRUE)->data);
$this->assertCacheData($lru_cache, [
[
'crow',
'crow',
],
[
'sparrow',
'sparrow',
],
[
'pigeon',
'pigeon',
],
]);
$lru_cache->set('cuckoo', 'cuckoo', LruMemoryCache::CACHE_PERMANENT, [
'cuckoo',
]);
$this->assertCacheData($lru_cache, [
[
'sparrow',
'sparrow',
],
[
'pigeon',
'pigeon',
],
[
'cuckoo',
'cuckoo',
],
]);
$lru_cache->invalidateTags([
'cuckoo',
]);
$this->assertFalse($lru_cache->get('cuckoo'));
$this->assertSame('cuckoo', $lru_cache->get('cuckoo', TRUE)->data);
$lru_cache->set('crow', 'crow');
$this->assertCacheData($lru_cache, [
[
'sparrow',
'sparrow',
],
[
'pigeon',
'pigeon',
],
[
'crow',
'crow',
],
]);
$lru_cache->invalidateMultiple([
'pigeon',
'crow',
]);
$cids = [
'pigeon',
'crow',
];
$this->assertEmpty($lru_cache->getMultiple($cids));
$this->assertSame([
'pigeon',
'crow',
], $cids);
$this->assertCount(2, $lru_cache->getMultiple($cids, TRUE));
$this->assertSame([], $cids);
$this->assertCacheData($lru_cache, [
[
'pigeon',
'pigeon',
],
[
'crow',
'crow',
],
[
'sparrow',
'sparrow',
],
]);
$lru_cache->set('duck', 'duck');
$lru_cache->set('chicken', 'chicken');
$this->assertCacheData($lru_cache, [
[
'sparrow',
'sparrow',
],
[
'duck',
'duck',
],
[
'chicken',
'chicken',
],
]);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.