From 54f4212b9e4fc05b52e70f2002f34ce713da36c7 Mon Sep 17 00:00:00 2001 From: Greg Bowler Date: Sun, 19 Apr 2026 20:06:38 +0100 Subject: [PATCH 1/2] test: isolate feature #73 --- test/phpunit/CacheTest.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/phpunit/CacheTest.php b/test/phpunit/CacheTest.php index eeb8435..cefcd9c 100644 --- a/test/phpunit/CacheTest.php +++ b/test/phpunit/CacheTest.php @@ -93,6 +93,23 @@ public function testGet_urlName_doesNotTraverseFilesystem():void { self::assertFileDoesNotExist(sys_get_temp_dir() . "/outside-cache"); } + public function testInvalidate_removesSingleCacheByKey():void { + $sut = $this->getSut(); + $name = "invalidate-me"; + $value = "cached-value"; + + self::assertSame($value, $sut->get($name, fn() => $value)); + + $expectedFile = sys_get_temp_dir() + . "/phpgt-filecache/" + . rawurlencode($name); + self::assertFileExists($expectedFile); + + $sut->invalidate($name); + + self::assertFileDoesNotExist($expectedFile); + } + public function testGet_generationExceptionDoesNotWriteInvalidValue():void { $fileAccess = self::createMock(FileAccess::class); $fileAccess->expects(self::once()) From 94b036de64f897d009c111e1d78d3fc1502a350f Mon Sep 17 00:00:00 2001 From: Greg Bowler Date: Sun, 19 Apr 2026 20:07:36 +0100 Subject: [PATCH 2/2] feature: manual invalidation closes #73 --- src/Cache.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Cache.php b/src/Cache.php index 9fc7835..1b17514 100644 --- a/src/Cache.php +++ b/src/Cache.php @@ -40,6 +40,10 @@ public function get( } } + public function invalidate(string $name):void { + $this->fileAccess->invalidate($name); + } + public function getString(string $name, callable $callback):string { return (string)$this->get($name, $callback); }