| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- <?php
- namespace Doctrine\Tests\Common\Cache;
- use Doctrine\Common\Cache\ApcCache;
- use Doctrine\Common\Cache\ArrayCache;
- use Doctrine\Common\Cache\ChainCache;
- class ChainCacheTest extends CacheTest
- {
- protected function _getCacheDriver()
- {
- return new ChainCache(array(new ArrayCache()));
- }
- public function testLifetime()
- {
- $this->markTestSkipped('The ChainCache test uses ArrayCache which does not implement TTL currently.');
- }
- public function testGetStats()
- {
- $cache = $this->_getCacheDriver();
- $stats = $cache->getStats();
- $this->assertInternalType('array', $stats);
- }
- public function testOnlyFetchFirstOne()
- {
- $cache1 = new ArrayCache();
- $cache2 = $this->getMockForAbstractClass('Doctrine\Common\Cache\CacheProvider');
- $cache2->expects($this->never())->method('doFetch');
- $chainCache = new ChainCache(array($cache1, $cache2));
- $chainCache->save('id', 'bar');
- $this->assertEquals('bar', $chainCache->fetch('id'));
- }
- public function testFetchPropagateToFastestCache()
- {
- $cache1 = new ArrayCache();
- $cache2 = new ArrayCache();
- $cache2->save('bar', 'value');
- $chainCache = new ChainCache(array($cache1, $cache2));
- $this->assertFalse($cache1->contains('bar'));
- $result = $chainCache->fetch('bar');
- $this->assertEquals('value', $result);
- $this->assertTrue($cache2->contains('bar'));
- }
- public function testNamespaceIsPropagatedToAllProviders()
- {
- $cache1 = new ArrayCache();
- $cache2 = new ArrayCache();
- $chainCache = new ChainCache(array($cache1, $cache2));
- $chainCache->setNamespace('bar');
- $this->assertEquals('bar', $cache1->getNamespace());
- $this->assertEquals('bar', $cache2->getNamespace());
- }
- public function testDeleteToAllProviders()
- {
- $cache1 = $this->getMockForAbstractClass('Doctrine\Common\Cache\CacheProvider');
- $cache2 = $this->getMockForAbstractClass('Doctrine\Common\Cache\CacheProvider');
- $cache1->expects($this->once())->method('doDelete');
- $cache2->expects($this->once())->method('doDelete');
- $chainCache = new ChainCache(array($cache1, $cache2));
- $chainCache->delete('bar');
- }
- public function testFlushToAllProviders()
- {
- $cache1 = $this->getMockForAbstractClass('Doctrine\Common\Cache\CacheProvider');
- $cache2 = $this->getMockForAbstractClass('Doctrine\Common\Cache\CacheProvider');
- $cache1->expects($this->once())->method('doFlush');
- $cache2->expects($this->once())->method('doFlush');
- $chainCache = new ChainCache(array($cache1, $cache2));
- $chainCache->flushAll();
- }
- protected function isSharedStorage()
- {
- return false;
- }
- }
|