Fix Lock test suite

This commit is contained in:
Jérémy Derussé 2019-04-07 07:56:05 +02:00
parent 50c22b3d58
commit 1f66e7b2be
No known key found for this signature in database
GPG Key ID: 2083FA5758C473D2
2 changed files with 14 additions and 8 deletions

View File

@ -58,7 +58,7 @@ class StoreFactory
return new FlockStore(substr($connection, 8));
case 'semaphore' === $connection:
return new SemaphoreStore();
case preg_match('#^[a-z]++://#', $connection):
case \class_exists(AbstractAdapter::class) && preg_match('#^[a-z]++://#', $connection):
return static::createStore(AbstractAdapter::createConnection($connection));
default:
throw new InvalidArgumentException(sprintf('Unsupported Connection: %s.', $connection));

View File

@ -12,6 +12,7 @@
namespace Symfony\Component\Lock\Tests\Store;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Cache\Adapter\AbstractAdapter;
use Symfony\Component\Cache\Traits\RedisProxy;
use Symfony\Component\Lock\Store\FlockStore;
use Symfony\Component\Lock\Store\MemcachedStore;
@ -40,19 +41,24 @@ class StoreFactoryTest extends TestCase
if (\class_exists(\Redis::class)) {
yield [$this->createMock(\Redis::class), RedisStore::class];
}
yield [$this->createMock(RedisProxy::class), RedisStore::class];
yield [$this->createMock(\Predis\Client::class), RedisStore::class];
if (\class_exists(RedisProxy::class)) {
yield [$this->createMock(RedisProxy::class), RedisStore::class];
}
yield [new \Predis\Client(), RedisStore::class];
if (\class_exists(\Memcached::class)) {
yield [$this->createMock(\Memcached::class), MemcachedStore::class];
yield [new \Memcached(), MemcachedStore::class];
}
if (\class_exists(\Zookeeper::class)) {
yield [$this->createMock(\Zookeeper::class), ZookeeperStore::class];
}
yield ['flock', FlockStore::class];
yield ['flock:///tmp', FlockStore::class];
yield ['semaphore', SemaphoreStore::class];
if (\class_exists(\Memcached::class)) {
if (\extension_loaded('sysvsem')) {
yield ['semaphore', SemaphoreStore::class];
}
if (\class_exists(\Memcached::class) && \class_exists(AbstractAdapter::class)) {
yield ['memcached://server.com', MemcachedStore::class];
}
yield ['flock', FlockStore::class];
yield ['flock://'.sys_get_temp_dir(), FlockStore::class];
}
}