Example #1
0
 public function testOutputMemcacheCache()
 {
     $memcache = $this->_prepareMemcached();
     if (!$memcache) {
         return false;
     }
     $memcache->delete('test-output');
     $time = date('H:i:s');
     $frontCache = new Phalcon\Cache\Frontend\Output(array('lifetime' => 2));
     $cache = new Phalcon\Cache\Backend\Memcache($frontCache);
     ob_start();
     //First time cache
     $content = $cache->start('test-output');
     if ($content !== null) {
         $this->assertTrue(false);
     }
     echo $time;
     $cache->save(null, null, null, true);
     $obContent = ob_get_contents();
     ob_end_clean();
     $this->assertEquals($time, $obContent);
     $this->assertEquals($time, $memcache->get('test-output'));
     //Expect same cache
     $content = $cache->start('test-output');
     if ($content === null) {
         $this->assertTrue(false);
     }
     $this->assertEquals($time, $obContent);
     //Refresh cache
     sleep(3);
     $time2 = date('H:i:s');
     ob_start();
     $content = $cache->start('test-output');
     if ($content !== null) {
         $this->assertTrue(false);
     }
     echo $time2;
     $cache->save(null, null, null, true);
     $obContent2 = ob_get_contents();
     ob_end_clean();
     $this->assertNotEquals($time, $obContent2);
     $this->assertEquals($time2, $obContent2);
     $this->assertEquals($time2, $memcache->get('test-output'));
     //Check if exists
     $this->assertTrue($cache->exists('test-output'));
     //Delete entry from cache
     $this->assertTrue($cache->delete('test-output'));
     $memcache->close();
 }