diff --git a/cache/disabledlib.php b/cache/disabledlib.php index c7cde7607db..39517137f0e 100644 --- a/cache/disabledlib.php +++ b/cache/disabledlib.php @@ -39,7 +39,7 @@ require_once($CFG->dirroot.'/cache/locallib.php'); * @copyright 2012 Sam Hemelryk * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class cache_disabled extends cache { +class cache_disabled extends cache implements cache_loader_with_locking { /** * Constructs the cache. @@ -204,20 +204,30 @@ class cache_disabled extends cache { /** * Pretend that we got a lock to avoid errors. * - * @param string $key + * @param int|string $key * @return bool */ - public function acquire_lock(string $key) : bool { + public function acquire_lock($key) : bool { return true; } /** * Pretend that we released a lock to avoid errors. * - * @param string $key - * @return void + * @param int|string $key + * @return bool */ - public function release_lock(string $key) : bool { + public function release_lock($key) : bool { + return true; + } + + /** + * Pretend that we have a lock to avoid errors. + * + * @param int|string $key + * @return bool + */ + public function check_lock_state($key) : bool { return true; } } diff --git a/cache/tests/cache_test.php b/cache/tests/cache_test.php index 2ee1198f6fc..5a660c34cd9 100644 --- a/cache/tests/cache_test.php +++ b/cache/tests/cache_test.php @@ -1426,6 +1426,15 @@ class cache_test extends \advanced_testcase { $this->assertFalse($cache->set_versioned('v', 1, 'data')); $this->assertFalse($cache->delete('test')); $this->assertTrue($cache->purge()); + // Checking a lock should always report that we have one. + // Acquiring or releasing a lock should always report success. + $this->assertTrue($cache->check_lock_state('test')); + $this->assertTrue($cache->acquire_lock('test')); + $this->assertTrue($cache->acquire_lock('test')); + $this->assertTrue($cache->check_lock_state('test')); + $this->assertTrue($cache->release_lock('test')); + $this->assertTrue($cache->release_lock('test')); + $this->assertTrue($cache->check_lock_state('test')); // Test a session cache. $cache = cache::make_from_params(cache_store::MODE_SESSION, 'phpunit', 'disable');