From c9be89647c1547d08d589bce332cbbc08584f9de Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Sat, 10 Aug 2019 17:12:22 +0200 Subject: [PATCH] Updated RedisFactory so that it loads redis config from cache.redis too --- module/Common/src/Cache/RedisFactory.php | 3 ++- module/Common/test/Cache/RedisFactoryTest.php | 20 ++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/module/Common/src/Cache/RedisFactory.php b/module/Common/src/Cache/RedisFactory.php index 42118767..f1a2d693 100644 --- a/module/Common/src/Cache/RedisFactory.php +++ b/module/Common/src/Cache/RedisFactory.php @@ -16,7 +16,8 @@ class RedisFactory public function __invoke(ContainerInterface $container): PredisClient { - $redisConfig = $container->get('config')['redis'] ?? []; + $config = $container->get('config'); + $redisConfig = $config['cache']['redis'] ?? $config['redis'] ?? []; $servers = $redisConfig['servers'] ?? []; $servers = is_string($servers) ? explode(',', $servers) : $servers; diff --git a/module/Common/test/Cache/RedisFactoryTest.php b/module/Common/test/Cache/RedisFactoryTest.php index dbc1c9b8..67acba2c 100644 --- a/module/Common/test/Cache/RedisFactoryTest.php +++ b/module/Common/test/Cache/RedisFactoryTest.php @@ -27,7 +27,7 @@ class RedisFactoryTest extends TestCase * @test * @dataProvider provideRedisConfig */ - public function createsRedisClientBasedOnConfig(?array $config, string $expectedCluster): void + public function createsRedisClientBasedOnRedisConfig(?array $config, string $expectedCluster): void { $getConfig = $this->container->get('config')->willReturn([ 'redis' => $config, @@ -39,6 +39,24 @@ class RedisFactoryTest extends TestCase $this->assertInstanceOf($expectedCluster, $client->getOptions()->cluster); } + /** + * @test + * @dataProvider provideRedisConfig + */ + public function createsRedisClientBasedOnCacheConfig(?array $config, string $expectedCluster): void + { + $getConfig = $this->container->get('config')->willReturn([ + 'cache' => [ + 'redis' => $config, + ], + ]); + + $client = ($this->factory)($this->container->reveal()); + + $getConfig->shouldHaveBeenCalledOnce(); + $this->assertInstanceOf($expectedCluster, $client->getOptions()->cluster); + } + public function provideRedisConfig(): iterable { yield 'no config' => [null, PredisCluster::class];