ChainCacheTest.php in Plug 7
File
lib/doctrine/cache/tests/Doctrine/Tests/Common/Cache/ChainCacheTest.php
View source
<?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 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;
}
}