Browse Source

Fixed memcache & unittests

pull/5331/head
Philipp Holzer 4 years ago
parent
commit
065b83d148
No known key found for this signature in database
GPG Key ID: 58160D7D6AF942B6
  1. 1
      .travis.yml
  2. 2
      src/Core/Cache/MemcacheCacheDriver.php
  3. 39
      tests/src/Core/Cache/MemcacheCacheDriverTest.php
  4. 40
      tests/src/Core/Lock/MemcacheCacheLockDriverTest.php

1
.travis.yml

@ -21,3 +21,4 @@ before_script:
- mysql -utravis test < database.sql
- echo "extension=redis.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
- echo "extension=memcached.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
- echo "extension=memcache.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini

2
src/Core/Cache/MemcacheCacheDriver.php

@ -111,6 +111,6 @@ class MemcacheCacheDriver extends AbstractCacheDriver implements IMemoryCacheDri
public function add($key, $value, $ttl = Cache::FIVE_MINUTES)
{
$cachekey = $this->getCacheKey($key);
return $this->memcache->add($cachekey, $value, $ttl);
return $this->memcache->add($cachekey, serialize($value), MEMCACHE_COMPRESSED, $ttl);
}
}

39
tests/src/Core/Cache/MemcacheCacheDriverTest.php

@ -0,0 +1,39 @@
<?php
namespace Friendica\Test\src\Core\Cache;
use Friendica\Core\Cache\CacheDriverFactory;
class MemcachedCacheDriverTest extends CacheTest
{
/**
* @var \Friendica\Core\Cache\IMemoryCacheDriver
*/
private $cache;
protected function getInstance()
{
if (class_exists('Memcache')) {
try {
$this->cache = CacheDriverFactory::create('memcache');
} catch (\Exception $exception) {
print "Memcache - TestCase failed: " . $exception->getMessage();
throw new \Exception();
}
return $this->cache;
} else {
$this->markTestSkipped('Memcache driver isn\'t available');
return null;
}
}
public function tearDown()
{
if (class_exists('Memcache')) {
$this->cache->clear();
}
parent::tearDown();
}
}

40
tests/src/Core/Lock/MemcacheCacheLockDriverTest.php

@ -0,0 +1,40 @@
<?php
namespace Friendica\Test\src\Core\Lock;
use Friendica\Core\Cache\CacheDriverFactory;
use Friendica\Core\Lock\CacheLockDriver;
class MemcacheCacheLockDriverTest extends LockTest
{
/**
* @var \Friendica\Core\Cache\IMemoryCacheDriver
*/
private $cache;
protected function getInstance()
{
if (class_exists('Memcache')) {
try {
$this->cache = CacheDriverFactory::create('memcache');
} catch (\Exception $exception) {
print "Memcache - TestCase failed: " . $exception->getMessage();
throw new \Exception();
}
return new CacheLockDriver($this->cache);
} else {
$this->markTestSkipped('Memcache driver isn\'t available');
return null;
}
}
public function tearDown()
{
if (class_exists('Memcache')) {
$this->cache->clear();
}
parent::tearDown();
}
}
Loading…
Cancel
Save