Вход Регистрация
Файл: src/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/ChainCacheTest.php
Строк: 89
<?php

namespace DoctrineTestsCommonCache;

use 
DoctrineCommonCacheApcCache;
use 
DoctrineCommonCacheArrayCache;
use 
DoctrineCommonCacheChainCache;

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('DoctrineCommonCacheCacheProvider');

        
$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('DoctrineCommonCacheCacheProvider');
        
$cache2 $this->getMockForAbstractClass('DoctrineCommonCacheCacheProvider');

        
$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('DoctrineCommonCacheCacheProvider');
        
$cache2 $this->getMockForAbstractClass('DoctrineCommonCacheCacheProvider');

        
$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;
    }
}
Онлайн: 2
Реклама