From 7708632f8d01e3f005a8dda56d4cd3ead4ff2ced Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 24 Jul 2024 09:42:07 +0300 Subject: [PATCH] Improved test coverage for cache system verbose output tests --- tests/SVNBuddy/Cache/CacheManagerTest.php | 30 ++++++++++++++--------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/tests/SVNBuddy/Cache/CacheManagerTest.php b/tests/SVNBuddy/Cache/CacheManagerTest.php index 58d79fe..5b41dbf 100644 --- a/tests/SVNBuddy/Cache/CacheManagerTest.php +++ b/tests/SVNBuddy/Cache/CacheManagerTest.php @@ -74,7 +74,7 @@ public function testSetWithoutDuration() /** * @medium */ - public function testSetWithDuration() + public function testSetWithExpiration() { $this->cacheManager->setCache('namespace:name_int', 'value_int', null, 1); $this->assertEquals('value_int', $this->cacheManager->getCache('namespace:name_int', null, 1)); @@ -138,15 +138,26 @@ public function testVerboseCacheMiss() $io = $this->prophesize('ConsoleHelpers\ConsoleKit\ConsoleIO'); $io->isVerbose()->willReturn(true)->shouldBeCalled(); - // For the 1st "getCache" call. - $this->expectVerboseOutput($io, '#^\[cache\]: .*/\.svn-buddy/namespace_.*\.cache \(miss \#1\)$#'); - $cache_manager = new CacheManager($this->getWorkingDirectory(), $this->sizeHelper->reveal(), $io->reveal()); - $this->assertNull($cache_manager->getCache('namespace:name')); - // For the 2nd "getCache" call. - $this->expectVerboseOutput($io, '#^\[cache\]: .*/\.svn-buddy/namespace_.*\.cache \(miss \#2\)$#'); - $this->assertNull($cache_manager->getCache('namespace:name')); + // First miss on persistent cache. + $this->expectVerboseOutput($io, '#^\[cache\]: .*/\.svn-buddy/namespace_.*\.cache \(miss:absent \#1\)$#'); + $this->assertNull($cache_manager->getCache('namespace:name1'), 'First miss on persistent cache.'); + + // Second miss on persistent cache. + $this->expectVerboseOutput($io, '#^\[cache\]: .*/\.svn-buddy/namespace_.*\.cache \(miss:absent \#2\)$#'); + $this->assertNull($cache_manager->getCache('namespace:name1'), 'Second miss on persistent cache.'); + + // Miss on expired cache. + $cache_manager->setCache('namespace:name2', 'value1', null, 1); + sleep(2); + $this->expectVerboseOutput($io, '#^\[cache\]: .*/\.svn-buddy/namespace_.*\.cache \(miss:expired \#1\)$#'); + $this->assertNull($cache_manager->getCache('namespace:name2', null, 1), 'Miss on expired cache.'); + + // Miss on invalidated cache. + $cache_manager->setCache('namespace:name3', 'value1', 'invalidator1'); + $this->expectVerboseOutput($io, '#^\[cache\]: .*/\.svn-buddy/namespace_.*\.cache \(miss:invalidated \#1\)$#'); + $this->assertNull($cache_manager->getCache('namespace:name3', 'invalidator2'), 'Miss on invalidated cache.'); } public function testVerboseCacheHit() @@ -154,9 +165,6 @@ public function testVerboseCacheHit() $io = $this->prophesize('ConsoleHelpers\ConsoleKit\ConsoleIO'); $io->isVerbose()->willReturn(true)->shouldBeCalled(); - // For "setCache" call. - $this->expectVerboseOutput($io, '#^\[cache\]: .*/\.svn-buddy/namespace_.*\.cache \(miss \#1\)$#'); - // For the 1st "getCache" call. $this->expectVerboseOutput($io, '#^\[cache\]: .*/\.svn-buddy/namespace_.*\.cache \(hit \#1: .*\)$#');