|
14 | 14 | namespace Cache\CacheBundle\Tests\Unit\DataCollector; |
15 | 15 |
|
16 | 16 | use Cache\Adapter\PHPArray\ArrayCachePool; |
| 17 | +use Cache\CacheBundle\Cache\FixedTaggingCachePool; |
17 | 18 | use Cache\CacheBundle\DataCollector\CacheDataCollector; |
18 | 19 | use Cache\CacheBundle\DataCollector\TraceableCachePool; |
19 | 20 | use Cache\Namespaced\NamespacedCachePool; |
@@ -156,6 +157,26 @@ public function testTaggableTraceReturnsAndRecordsTaggableItems() |
156 | 157 | self::assertSame(['getItem', 'getItems'], array_column($pool->getCalls(), 'name')); |
157 | 158 | } |
158 | 159 |
|
| 160 | + public function testTracesTaggablePoolsWithoutPhpCacheExtensions() |
| 161 | + { |
| 162 | + $inner = new FixedTaggingCachePool(new ArrayCachePool(), []); |
| 163 | + self::assertTrue($inner->save($inner->getItem('one')->set('value'))); |
| 164 | + |
| 165 | + $pool = TraceableCachePool::create($inner, 'cache.pool'); |
| 166 | + self::assertInstanceOf(TaggableCacheItemPoolInterface::class, $pool); |
| 167 | + |
| 168 | + self::assertSame('value', $pool->getItem('one')->get()); |
| 169 | + $items = iterator_to_array($pool->getItems(['one'])); |
| 170 | + self::assertSame('value', $items['one']->get()); |
| 171 | + self::assertTrue($pool->invalidateTag('router')); |
| 172 | + self::assertTrue($pool->invalidateTags(['session', 'router'])); |
| 173 | + |
| 174 | + self::assertSame( |
| 175 | + ['getItem', 'getItems', 'invalidateTag', 'invalidateTags'], |
| 176 | + array_column($pool->getCalls(), 'name'), |
| 177 | + ); |
| 178 | + } |
| 179 | + |
159 | 180 | public function testTaggableTraceRejectsNonTaggableBulkItems() |
160 | 181 | { |
161 | 182 | $inner = $this->createMock(TaggableCacheItemPoolInterface::class); |
|
0 commit comments