Security update for Core, with self-updated composer
[yaffs-website] / vendor / doctrine / cache / tests / Doctrine / Tests / Common / Cache / FilesystemCacheTest.php
diff --git a/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/FilesystemCacheTest.php b/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/FilesystemCacheTest.php
new file mode 100644 (file)
index 0000000..9e7c9e8
--- /dev/null
@@ -0,0 +1,61 @@
+<?php
+
+namespace Doctrine\Tests\Common\Cache;
+
+use Doctrine\Common\Cache\Cache;
+use Doctrine\Common\Cache\FilesystemCache;
+
+/**
+ * @group DCOM-101
+ */
+class FilesystemCacheTest extends BaseFileCacheTest
+{
+    public function testGetStats()
+    {
+        $cache = $this->_getCacheDriver();
+        $stats = $cache->getStats();
+
+        $this->assertNull($stats[Cache::STATS_HITS]);
+        $this->assertNull($stats[Cache::STATS_MISSES]);
+        $this->assertNull($stats[Cache::STATS_UPTIME]);
+        $this->assertEquals(0, $stats[Cache::STATS_MEMORY_USAGE]);
+        $this->assertGreaterThan(0, $stats[Cache::STATS_MEMORY_AVAILABLE]);
+    }
+
+    public function testCacheInSharedDirectoryIsPerExtension()
+    {
+        $cache1 = new FilesystemCache($this->directory, '.foo');
+        $cache2 = new FilesystemCache($this->directory, '.bar');
+
+        $this->assertTrue($cache1->save('key1', 11));
+        $this->assertTrue($cache1->save('key2', 12));
+
+        $this->assertTrue($cache2->save('key1', 21));
+        $this->assertTrue($cache2->save('key2', 22));
+
+        $this->assertSame(11, $cache1->fetch('key1'), 'Cache value must not be influenced by a different cache in the same directory but different extension');
+        $this->assertSame(12, $cache1->fetch('key2'));
+        $this->assertTrue($cache1->flushAll());
+        $this->assertFalse($cache1->fetch('key1'), 'flushAll() must delete all items with the current extension');
+        $this->assertFalse($cache1->fetch('key2'));
+
+        $this->assertSame(21, $cache2->fetch('key1'), 'flushAll() must not remove items with a different extension in a shared directory');
+        $this->assertSame(22, $cache2->fetch('key2'));
+    }
+
+    public function testFlushAllWithNoExtension()
+    {
+        $cache = new FilesystemCache($this->directory, '');
+
+        $this->assertTrue($cache->save('key1', 1));
+        $this->assertTrue($cache->save('key2', 2));
+        $this->assertTrue($cache->flushAll());
+        $this->assertFalse($cache->contains('key1'));
+        $this->assertFalse($cache->contains('key2'));
+    }
+
+    protected function _getCacheDriver()
+    {
+        return new FilesystemCache($this->directory);
+    }
+}