markTestSkipped('The ' . __CLASS__ .' requires the use of memcached'); } $this->memcached = new Memcached(); $this->memcached->setOption(Memcached::OPT_COMPRESSION, false); $this->memcached->addServer('127.0.0.1', 11211); if (@fsockopen('127.0.0.1', 11211) === false) { unset($this->memcached); $this->markTestSkipped('The ' . __CLASS__ .' cannot connect to memcache'); } } public function tearDown() { if ($this->memcached instanceof Memcached) { $this->memcached->flush(); } } public function testNoExpire() { $cache = $this->_getCacheDriver(); $cache->save('noexpire', 'value', 0); sleep(1); $this->assertTrue($cache->contains('noexpire'), 'Memcache provider should support no-expire'); } public function testLongLifetime() { $cache = $this->_getCacheDriver(); $cache->save('key', 'value', 30 * 24 * 3600 + 1); $this->assertTrue($cache->contains('key'), 'Memcache provider should support TTL > 30 days'); } protected function _getCacheDriver() { $driver = new MemcachedCache(); $driver->setMemcached($this->memcached); return $driver; } }