class ChainCacheTest in Zircon Profile 8.0
Same name and namespace in other branches
- 8 vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/ChainCacheTest.php \Doctrine\Tests\Common\Cache\ChainCacheTest
 
Hierarchy
- class \Doctrine\Tests\Common\Cache\CacheTest extends \Doctrine\Tests\DoctrineTestCase
- class \Doctrine\Tests\Common\Cache\ChainCacheTest
 
 
Expanded class hierarchy of ChainCacheTest
File
- vendor/
doctrine/ cache/ tests/ Doctrine/ Tests/ Common/ Cache/ ChainCacheTest.php, line 9  
Namespace
Doctrine\Tests\Common\CacheView source
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;
  }
}