| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- <?php
- /*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Symfony\Component\Cache\Tests\Adapter;
- use Symfony\Component\Cache\Adapter\AbstractAdapter;
- use Symfony\Component\Cache\Adapter\RedisAdapter;
- use Symfony\Component\Cache\Traits\RedisClusterProxy;
- class RedisClusterAdapterTest extends AbstractRedisAdapterTest
- {
- public static function setUpBeforeClass(): void
- {
- if (!class_exists('RedisCluster')) {
- self::markTestSkipped('The RedisCluster class is required.');
- }
- if (!$hosts = getenv('REDIS_CLUSTER_HOSTS')) {
- self::markTestSkipped('REDIS_CLUSTER_HOSTS env var is not defined.');
- }
- self::$redis = AbstractAdapter::createConnection('redis:?host['.str_replace(' ', ']&host[', $hosts).']', ['lazy' => true, 'redis_cluster' => true]);
- }
- public function createCachePool($defaultLifetime = 0)
- {
- $this->assertInstanceOf(RedisClusterProxy::class, self::$redis);
- $adapter = new RedisAdapter(self::$redis, str_replace('\\', '.', __CLASS__), $defaultLifetime);
- return $adapter;
- }
- /**
- * @dataProvider provideFailedCreateConnection
- */
- public function testFailedCreateConnection($dsn)
- {
- $this->expectException('Symfony\Component\Cache\Exception\InvalidArgumentException');
- $this->expectExceptionMessage('Redis connection failed');
- RedisAdapter::createConnection($dsn);
- }
- public function provideFailedCreateConnection()
- {
- return [
- ['redis://localhost:1234?redis_cluster=1'],
- ['redis://foo@localhost?redis_cluster=1'],
- ['redis://localhost/123?redis_cluster=1'],
- ];
- }
- }
|