9e7c9e818516c62d5b4b78d165ff335c54395ae2
[yaffs-website] / vendor / doctrine / cache / tests / Doctrine / Tests / Common / Cache / FilesystemCacheTest.php
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 }