public function CacheTagsInvalidatorTest::testInvalidateTags in Drupal 8
Same name and namespace in other branches
- 9 core/tests/Drupal/Tests/Core/Cache/CacheTagsInvalidatorTest.php \Drupal\Tests\Core\Cache\CacheTagsInvalidatorTest::testInvalidateTags()
@covers ::invalidateTags @covers ::addInvalidator
File
- core/
tests/ Drupal/ Tests/ Core/ Cache/ CacheTagsInvalidatorTest.php, line 28
Class
- CacheTagsInvalidatorTest
- @coversDefaultClass \Drupal\Core\Cache\CacheTagsInvalidator @group Cache
Namespace
Drupal\Tests\Core\CacheCode
public function testInvalidateTags() {
$cache_tags_invalidator = new CacheTagsInvalidator();
// This does not actually implement,
// \Drupal\Cache\Cache\CacheBackendInterface but we can not mock from two
// interfaces, we would need a test class for that.
$invalidator_cache_bin = $this
->createMock('\\Drupal\\Core\\Cache\\CacheTagsInvalidator');
$invalidator_cache_bin
->expects($this
->once())
->method('invalidateTags')
->with([
'node:1',
]);
// 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('\\Drupal\\Core\\Cache\\CacheBackendInterface');
$container = new Container();
$container
->set('cache.invalidator_cache_bin', $invalidator_cache_bin);
$container
->set('cache.non_invalidator_cache_bin', $non_invalidator_cache_bin);
$container
->setParameter('cache_bins', [
'cache.invalidator_cache_bin' => 'invalidator_cache_bin',
'cache.non_invalidator_cache_bin' => 'non_invalidator_cache_bin',
]);
$cache_tags_invalidator
->setContainer($container);
$invalidator = $this
->createMock('\\Drupal\\Core\\Cache\\CacheTagsInvalidator');
$invalidator
->expects($this
->once())
->method('invalidateTags')
->with([
'node:1',
]);
$cache_tags_invalidator
->addInvalidator($invalidator);
$cache_tags_invalidator
->invalidateTags([
'node:1',
]);
}