FilesystemCacheTest.php 2.1 KB

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