Passed
Push — master ( dc1d0d...74f1fd )
by Alexander
01:47
created

TagDependencyTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 24
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
eloc 12
dl 0
loc 24
rs 10
c 1
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testInvalidateByTag() 0 17 1
A createCache() 0 3 1
1
<?php
2
namespace Yiisoft\Cache\Tests\Dependency;
3
4
use Yiisoft\Cache\ArrayCache;
5
use Yiisoft\Cache\Cache;
6
use Yiisoft\Cache\CacheInterface;
7
use Yiisoft\Cache\Dependency\TagDependency;
8
9
class TagDependencyTest extends DependencyTestCase
10
{
11
    protected function createCache(): CacheInterface
12
    {
13
        return new Cache(new ArrayCache());
14
    }
15
16
    public function testInvalidateByTag(): void
17
    {
18
        $cache = $this->getCache();
19
        $cache->set('item_42_price', 13, null, new TagDependency('item_42'));
20
        $cache->set('item_42_total', 26, null, new TagDependency('item_42'));
21
22
        $this->assertSame(13, $cache->get('item_42_price'));
23
        $this->assertSame(26, $cache->get('item_42_total'));
24
25
        TagDependency::invalidate($cache, 'item_42');
26
27
        // keys are invalidated but are still there
28
        $this->assertTrue($cache->has('item_42_price'));
29
        $this->assertTrue($cache->has('item_42_total'));
30
31
        $this->assertNull($cache->get('item_42_price'));
32
        $this->assertNull($cache->get('item_42_total'));
33
    }
34
}
35