. * */ namespace Friendica\Test\src\Core\Lock; use Exception; use Friendica\Core\Cache\Type\RedisCache; use Friendica\Core\Config\IConfig; use Friendica\Core\Lock\CacheLock; use Mockery; /** * @requires extension redis * @group REDIS */ class RedisCacheLockTest extends LockTest { protected function getInstance() { $configMock = Mockery::mock(IConfig::class); $host = $_SERVER['REDIS_HOST'] ?? 'localhost'; $port = $_SERVER['REDIS_PORT'] ?? 6379; $configMock ->shouldReceive('get') ->with('system', 'redis_host') ->andReturn($host); $configMock ->shouldReceive('get') ->with('system', 'redis_port') ->andReturn($port); $configMock ->shouldReceive('get') ->with('system', 'redis_db', 0) ->andReturn(0); $configMock ->shouldReceive('get') ->with('system', 'redis_password') ->andReturn(null); $lock = null; try { $cache = new RedisCache($host, $configMock); $lock = new CacheLock($cache); } catch (Exception $e) { static::markTestSkipped('Redis is not available. Error: ' . $e->getMessage()); } return $lock; } }