|
6 | 6 |
|
7 | 7 | use Doctrine\Common\Cache\ArrayCache; |
8 | 8 | use Doctrine\Common\Cache\ChainCache; |
| 9 | +use DoctrineModule\Cache\LaminasStorageCache; |
9 | 10 | use DoctrineModule\Service\CacheFactory; |
| 11 | +use Laminas\Cache\ConfigProvider; |
| 12 | +use Laminas\Cache\Storage\Adapter\BlackHole; |
| 13 | +use Laminas\Cache\Storage\AdapterPluginManager; |
| 14 | +use Laminas\ServiceManager\Factory\InvokableFactory; |
10 | 15 | use Laminas\ServiceManager\ServiceManager; |
11 | 16 | use PHPUnit\Framework\TestCase as BaseTestCase; |
12 | 17 |
|
13 | 18 | use function assert; |
| 19 | +use function class_exists; |
14 | 20 |
|
15 | 21 | /** |
16 | 22 | * Test for {@see \DoctrineModule\Service\CacheFactory} |
@@ -49,31 +55,45 @@ public function testWillSetNamespace(): void |
49 | 55 | public function testCreateLaminasCache(): void |
50 | 56 | { |
51 | 57 | $factory = new CacheFactory('phpunit'); |
52 | | - $serviceManager = new ServiceManager(); |
53 | | - $serviceManager->setService( |
54 | | - 'config', |
55 | | - [ |
56 | | - 'doctrine' => [ |
57 | | - 'cache' => [ |
58 | | - 'phpunit' => [ |
59 | | - 'class' => 'DoctrineModule\Cache\LaminasStorageCache', |
60 | | - 'instance' => 'my-laminas-cache', |
61 | | - 'namespace' => 'DoctrineModule', |
62 | | - ], |
| 58 | + $serviceManager = new ServiceManager((new ConfigProvider())->getDependencyConfig()); |
| 59 | + $config = [ |
| 60 | + 'doctrine' => [ |
| 61 | + 'cache' => [ |
| 62 | + 'phpunit' => [ |
| 63 | + 'class' => 'DoctrineModule\Cache\LaminasStorageCache', |
| 64 | + 'instance' => 'my-laminas-cache', |
| 65 | + 'namespace' => 'DoctrineModule', |
63 | 66 | ], |
64 | 67 | ], |
65 | | - 'caches' => [ |
66 | | - 'my-laminas-cache' => [ |
67 | | - 'adapter' => ['name' => 'blackhole'], |
68 | | - ], |
| 68 | + ], |
| 69 | + 'caches' => [ |
| 70 | + 'my-laminas-cache' => ['adapter' => 'blackhole'], |
| 71 | + ], |
| 72 | + ]; |
| 73 | + |
| 74 | + if (class_exists(BlackHole\ConfigProvider::class)) { |
| 75 | + // setup for laminas-cache 3 with blackhole adapter 2 |
| 76 | + $serviceManager->configure((new BlackHole\ConfigProvider())->getServiceDependencies()); |
| 77 | + $serviceManager->setService('config', $config); |
| 78 | + } else { |
| 79 | + // setup for laminas-cache 2 and 3 with blackhole adapter 1 |
| 80 | + $config['caches']['my-laminas-cache']['name'] = 'blackhole'; |
| 81 | + $pluginManager = $serviceManager->get(AdapterPluginManager::class); |
| 82 | + assert($pluginManager instanceof AdapterPluginManager); |
| 83 | + $pluginManager->configure([ |
| 84 | + 'factories' => [ |
| 85 | + BlackHole::class => InvokableFactory::class, |
69 | 86 | ], |
70 | | - ] |
71 | | - ); |
72 | | - $serviceManager->addAbstractFactory('Laminas\Cache\Service\StorageCacheAbstractServiceFactory'); |
| 87 | + 'aliases' => [ |
| 88 | + 'blackhole' => BlackHole::class, |
| 89 | + ], |
| 90 | + ]); |
| 91 | + $serviceManager->setService('config', $config); |
| 92 | + } |
73 | 93 |
|
74 | | - $cache = $factory->createService($serviceManager); |
| 94 | + $cache = $factory->__invoke($serviceManager, LaminasStorageCache::class); |
75 | 95 |
|
76 | | - $this->assertInstanceOf('DoctrineModule\Cache\LaminasStorageCache', $cache); |
| 96 | + $this->assertInstanceOf(LaminasStorageCache::class, $cache); |
77 | 97 | } |
78 | 98 |
|
79 | 99 | public function testCreatePredisCache(): void |
|
0 commit comments