Skip to content

Commit dd6e4f1

Browse files
authored
Manual invalidation feature (#74)
* test: isolate feature #73 * feature: manual invalidation closes #73
1 parent 9d67d78 commit dd6e4f1

2 files changed

Lines changed: 21 additions & 0 deletions

File tree

src/Cache.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ public function get(
4040
}
4141
}
4242

43+
public function invalidate(string $name):void {
44+
$this->fileAccess->invalidate($name);
45+
}
46+
4347
public function getString(string $name, callable $callback):string {
4448
return (string)$this->get($name, $callback);
4549
}

test/phpunit/CacheTest.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,23 @@ public function testGet_urlName_doesNotTraverseFilesystem():void {
9393
self::assertFileDoesNotExist(sys_get_temp_dir() . "/outside-cache");
9494
}
9595

96+
public function testInvalidate_removesSingleCacheByKey():void {
97+
$sut = $this->getSut();
98+
$name = "invalidate-me";
99+
$value = "cached-value";
100+
101+
self::assertSame($value, $sut->get($name, fn() => $value));
102+
103+
$expectedFile = sys_get_temp_dir()
104+
. "/phpgt-filecache/"
105+
. rawurlencode($name);
106+
self::assertFileExists($expectedFile);
107+
108+
$sut->invalidate($name);
109+
110+
self::assertFileDoesNotExist($expectedFile);
111+
}
112+
96113
public function testGet_generationExceptionDoesNotWriteInvalidValue():void {
97114
$fileAccess = self::createMock(FileAccess::class);
98115
$fileAccess->expects(self::once())

0 commit comments

Comments
 (0)