Skip to content
Extraits de code Groupes Projets
CacheTest.php 2,79 ko
Newer Older
  • Learn to ignore specific revisions
  • <?php
    /**
     * Piwik - free/libre analytics platform
     *
     * @link http://piwik.org
     * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
     */
    
    
    
    use Piwik\Cache;
    use Piwik\Piwik;
    
    use Piwik\Tests\Framework\TestCase\UnitTestCase;
    
    class CacheTest extends UnitTestCase
    
    {
        public function test_getLazyCache_shouldCreateAnInstanceOfLazy()
        {
            $cache = Cache::getLazyCache();
    
            $this->assertTrue($cache instanceof Cache\Lazy);
        }
    
        public function test_getLazyCache_shouldAlwaysReturnTheSameInstance()
        {
            $cache1 = Cache::getLazyCache();
            $cache2 = Cache::getLazyCache();
    
            $this->assertSame($cache1, $cache2);
        }
    
        public function test_getEagerCache_shouldCreateAnInstanceOfEager()
        {
            $cache = Cache::getEagerCache();
    
            $this->assertTrue($cache instanceof Cache\Eager);
        }
    
        public function test_getEagerCache_shouldAlwaysReturnTheSameInstance()
        {
            $cache1 = Cache::getEagerCache();
            $cache2 = Cache::getEagerCache();
    
            $this->assertSame($cache1, $cache2);
        }
    
        public function test_getEagerCache_shouldPersistOnceEventWasTriggered()
        {
            $storageId = 'eagercache-test-ui';
            $cache = Cache::getEagerCache();
            $cache->save('test', 'mycontent'); // make sure something was changed, otherwise it won't save anything
    
            /** @var \Piwik\Cache\Backend $backend */
    
            $backend = $this->environment->get('Piwik\Cache\Backend');
    
            $this->assertFalse($backend->doContains($storageId));
    
            Piwik::postEvent('Request.dispatch.end'); // should trigger save
    
            $this->assertTrue($backend->doContains($storageId));
        }
    
        public function test_getTransientCache_shouldCreateAnInstanceOfTransient()
        {
            $cache = Cache::getTransientCache();
    
            $this->assertTrue($cache instanceof Cache\Transient);
        }
    
        public function test_getTransientCache_shouldAlwaysReturnTheSameInstance()
        {
            $cache1 = Cache::getTransientCache();
            $cache2 = Cache::getTransientCache();
    
            $this->assertSame($cache1, $cache2);
        }
    
        public function test_flushAll_shouldActuallyFlushAllCaches()
        {
            $cache1 = Cache::getTransientCache();
            $cache2 = Cache::getLazyCache();
            $cache3 = Cache::getEagerCache();
    
            $cache1->save('test1', 'content');
            $cache2->save('test2', 'content');
            $cache3->save('test3', 'content');
    
            $this->assertTrue($cache1->contains('test1'));
            $this->assertTrue($cache2->contains('test2'));
            $this->assertTrue($cache3->contains('test3'));
    
            Cache::flushAll();
    
            $this->assertFalse($cache1->contains('test1'));
            $this->assertFalse($cache2->contains('test2'));
            $this->assertFalse($cache3->contains('test3'));
        }
    
    }