diff --git a/Manager/CachedSettingsManager.php b/Manager/CachedSettingsManager.php index 00b4741..8e14bcc 100644 --- a/Manager/CachedSettingsManager.php +++ b/Manager/CachedSettingsManager.php @@ -80,6 +80,7 @@ public function all(SettingsOwnerInterface $owner = null) public function set($name, $value, SettingsOwnerInterface $owner = null) { $this->invalidateCache($name, $owner); + $this->invalidateCache(null, $owner); return $this->settingsManager->set($name, $value, $owner); } @@ -92,6 +93,7 @@ public function setMany(array $settings, SettingsOwnerInterface $owner = null) foreach ($settings as $key => $value) { $this->invalidateCache($key, $owner); } + $this->invalidateCache(null, $owner); return $this->settingsManager->setMany($settings, $owner); } @@ -102,6 +104,7 @@ public function setMany(array $settings, SettingsOwnerInterface $owner = null) public function clear($name, SettingsOwnerInterface $owner = null) { $this->invalidateCache($name, $owner); + $this->invalidateCache(null, $owner); return $this->settingsManager->clear($name, $owner); } diff --git a/Tests/CachedSettingsManagerTest.php b/Tests/CachedSettingsManagerTest.php index cb14510..ed96da3 100644 --- a/Tests/CachedSettingsManagerTest.php +++ b/Tests/CachedSettingsManagerTest.php @@ -111,11 +111,19 @@ public function testSet() ->setMethods(array('invalidateCache')) ->setConstructorArgs(array($settingsManager, $this->getMock(CacheItemPoolInterface::class), 4711)) ->getMock(); - $cachedSettingsManager->expects($this->once()) + + // Clear the cache + $cachedSettingsManager->expects($this->at(0)) ->method('invalidateCache') ->with($this->equalTo($name), $this->equalTo($owner)) ->willReturn(null); + // Clear all cache for this owner + $cachedSettingsManager->expects($this->at(1)) + ->method('invalidateCache') + ->with($this->equalTo(null), $this->equalTo($owner)) + ->willReturn(null); + $cachedSettingsManager->set($name, $value, $owner); } @@ -131,9 +139,9 @@ public function testSetMany() ->setMethods(array('invalidateCache')) ->setConstructorArgs(array($settingsManager, $this->getMock(CacheItemPoolInterface::class), 4711)) ->getMock(); - $cachedSettingsManager->expects($this->exactly(3)) + $cachedSettingsManager->expects($this->exactly(4)) ->method('invalidateCache') - ->with($this->logicalOr('name0', 'name1', 'name2'), $owner); + ->with($this->logicalOr('name0', 'name1', 'name2', null), $owner); $cachedSettingsManager->setMany($settings, $owner); } @@ -150,10 +158,14 @@ public function testClear() ->setMethods(array('invalidateCache')) ->setConstructorArgs(array($settingsManager, $this->getMock(CacheItemPoolInterface::class), 4711)) ->getMock(); - $cachedSettingsManager->expects($this->once()) + $cachedSettingsManager->expects($this->at(0)) ->method('invalidateCache') ->with($this->equalTo($name), $this->equalTo($owner)) ->willReturn(null); + $cachedSettingsManager->expects($this->at(1)) + ->method('invalidateCache') + ->with($this->equalTo(null), $this->equalTo($owner)) + ->willReturn(null); $cachedSettingsManager->clear($name, $owner); }