Completed
Push — master ( a8b991...dda2b8 )
by Marco
06:05 queued 02:56
created

testCacheInSharedDirectoryIsPerExtension()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 20
Code Lines 14

Duplication

Lines 0
Ratio 0 %
Metric Value
dl 0
loc 20
rs 9.4286
cc 1
eloc 14
nc 1
nop 0
1
<?php
2
3
namespace Doctrine\Tests\Common\Cache;
4
5
use Doctrine\Common\Cache\Cache;
6
use Doctrine\Common\Cache\FilesystemCache;
7
8
/**
9
 * @group DCOM-101
10
 */
11
class FilesystemCacheTest extends BaseFileCacheTest
12
{
13
    public function testGetStats()
14
    {
15
        $cache = $this->_getCacheDriver();
16
        $stats = $cache->getStats();
17
18
        $this->assertNull($stats[Cache::STATS_HITS]);
19
        $this->assertNull($stats[Cache::STATS_MISSES]);
20
        $this->assertNull($stats[Cache::STATS_UPTIME]);
21
        $this->assertEquals(0, $stats[Cache::STATS_MEMORY_USAGE]);
22
        $this->assertGreaterThan(0, $stats[Cache::STATS_MEMORY_AVAILABLE]);
23
    }
24
25
    public function testCacheInSharedDirectoryIsPerExtension()
26
    {
27
        $cache1 = new FilesystemCache($this->directory, '.foo');
28
        $cache2 = new FilesystemCache($this->directory, '.bar');
29
30
        $this->assertTrue($cache1->save('key1', 11));
31
        $this->assertTrue($cache1->save('key2', 12));
32
33
        $this->assertTrue($cache2->save('key1', 21));
34
        $this->assertTrue($cache2->save('key2', 22));
35
36
        $this->assertSame(11, $cache1->fetch('key1'), 'Cache value must not be influenced by a different cache in the same directory but different extension');
37
        $this->assertSame(12, $cache1->fetch('key2'));
38
        $this->assertTrue($cache1->flushAll());
39
        $this->assertFalse($cache1->fetch('key1'), 'flushAll() must delete all items with the current extension');
40
        $this->assertFalse($cache1->fetch('key2'));
41
42
        $this->assertSame(21, $cache2->fetch('key1'), 'flushAll() must not remove items with a different extension in a shared directory');
43
        $this->assertSame(22, $cache2->fetch('key2'));
44
    }
45
46
    public function testFlushAllWithNoExtension()
47
    {
48
        $cache = new FilesystemCache($this->directory, '');
49
50
        $this->assertTrue($cache->save('key1', 1));
51
        $this->assertTrue($cache->save('key2', 2));
52
        $this->assertTrue($cache->flushAll());
53
        $this->assertFalse($cache->contains('key1'));
54
        $this->assertFalse($cache->contains('key2'));
55
    }
56
57
    protected function _getCacheDriver()
58
    {
59
        return new FilesystemCache($this->directory);
60
    }
61
}
62