CacheTagsInvalidatorTest.php
Namespace
Drupal\Tests\Core\CacheFile
-
core/
tests/ Drupal/ Tests/ Core/ Cache/ CacheTagsInvalidatorTest.php
View source
<?php
declare (strict_types=1);
namespace Drupal\Tests\Core\Cache;
use Drupal\Core\Cache\CacheBackendInterface;
use Drupal\Core\Cache\CacheTagsInvalidator;
use Drupal\Core\Cache\CacheTagsInvalidatorInterface;
use Drupal\Tests\UnitTestCase;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\Group;
/**
* Tests Drupal\Core\Cache\CacheTagsInvalidator.
*/
class CacheTagsInvalidatorTest extends UnitTestCase {
/**
* Tests invalidate tags with invalid tags.
*
* @legacy-covers ::invalidateTags
*/
public function testInvalidateTagsWithInvalidTags() : void {
$cache_tags_invalidator = new CacheTagsInvalidator();
$this->expectException(\AssertionError::class);
$cache_tags_invalidator->invalidateTags([
'node' => [
2,
3,
5,
8,
13,
],
]);
}
/**
* Tests invalidate tags.
*
* @legacy-covers ::invalidateTags
* @legacy-covers ::addInvalidator
* @legacy-covers ::addBin
*/
public function testInvalidateTags() : void {
$cache_tags_invalidator = new CacheTagsInvalidator();
$invalidator_cache_bin = $this->createMock(InvalidatingCacheBackendInterface::class);
$invalidator_cache_bin->expects($this->once())
->method('invalidateTags')
->with([
'node:1',
]);
$cache_tags_invalidator->addBin($invalidator_cache_bin);
// We do not have to define that invalidateTags() is never called as the
// interface does not define that method, trying to call it would result in
// a fatal error.
$non_invalidator_cache_bin = $this->createMock(CacheBackendInterface::class);
$cache_tags_invalidator->addBin($non_invalidator_cache_bin);
$invalidator = $this->createMock(CacheTagsInvalidatorInterface::class);
$invalidator->expects($this->once())
->method('invalidateTags')
->with([
'node:1',
]);
$cache_tags_invalidator->addInvalidator($invalidator);
$cache_tags_invalidator->invalidateTags([
'node:1',
]);
}
}
/**
* Test interface for testing the cache tags validator.
*/
interface InvalidatingCacheBackendInterface extends CacheTagsInvalidatorInterface, CacheBackendInterface {
}
Classes
| Title | Deprecated | Summary |
|---|---|---|
| CacheTagsInvalidatorTest | Tests Drupal\Core\Cache\CacheTagsInvalidator. |
Interfaces
| Title | Deprecated | Summary |
|---|---|---|
| InvalidatingCacheBackendInterface | Test interface for testing the cache tags validator. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.