Always return bool values from WPCacheEngine functions. (#39819)

This commit is contained in:
Vedanshu Jain 2023-08-21 16:12:08 +05:30 committed by GitHub
commit bc5c355eb7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 63 additions and 3 deletions

View File

@ -0,0 +1,4 @@
Significance: patch
Type: fix
Always return bool values from WPCacheEngine functions when expected.

View File

@ -34,7 +34,7 @@ class WPCacheEngine implements CacheEngine {
*/
public function cache_object( string $key, $object, int $expiration, string $group = '' ): bool {
$prefixed_key = self::get_prefixed_key( $key, $group );
return wp_cache_set( $prefixed_key, $object, $group, $expiration );
return false !== wp_cache_set( $prefixed_key, $object, $group, $expiration );
}
/**
@ -47,7 +47,7 @@ class WPCacheEngine implements CacheEngine {
*/
public function delete_cached_object( string $key, string $group = '' ): bool {
$prefixed_key = self::get_prefixed_key( $key, $group );
return wp_cache_delete( $prefixed_key, $group );
return false !== wp_cache_delete( $prefixed_key, $group );
}
/**
@ -71,6 +71,6 @@ class WPCacheEngine implements CacheEngine {
* @return bool True if the group is deleted successfully, false otherwise.
*/
public function delete_cache_group( string $group = '' ): bool {
return self::invalidate_cache_group( $group );
return false !== self::invalidate_cache_group( $group );
}
}

View File

@ -0,0 +1,56 @@
<?php
namespace Automattic\WooCommerce\Tests\Caching;
use Automattic\WooCommerce\Caching\WPCacheEngine;
/**
* Tests for WPCacheEngine.
*/
class WPCacheEngineTest extends \WC_Unit_Test_Case {
/**
* System under test.
*
* @var WPCacheEngine
*/
private $sut;
/**
* Setup test.
*/
public function setUp(): void {
parent::setUp();
$this->sut = wc_get_container()->get( WPCacheEngine::class );
}
/**
* @testDox Test that the cache engine can be used to cache and retrieve objects.
*/
public function test_caching_crud() {
$object_to_cache = new \stdClass();
$object_to_cache->prop1 = 'dummy_value_1';
$object_to_cache->prop2 = 'dummy_value_2';
$key = 'dummy_object_key';
$group = 'dummy_group';
$this->assertFalse( $this->sut->is_cached( $key, $group ) );
$this->sut->cache_object( $key, $object_to_cache, HOUR_IN_SECONDS, $group );
$this->assertTrue( $this->sut->is_cached( $key, $group ) );
$cached_obj = $this->sut->get_cached_object( $key, $group );
$this->assertEquals( $object_to_cache->prop1, $cached_obj->prop1 );
$this->assertEquals( $object_to_cache->prop2, $cached_obj->prop2 );
$this->sut->delete_cached_object( $key, $group );
$this->assertFalse( $this->sut->is_cached( $key, $group ) );
$this->assertNull( ( $this->sut->get_cached_object( $key, $group ) ) );
$this->sut->cache_object( $key, $object_to_cache, HOUR_IN_SECONDS, $group );
$this->assertTrue( $this->sut->is_cached( $key, $group ) );
$this->sut->delete_cache_group( $group );
$this->assertFalse( $this->sut->is_cached( $key, $group ) );
$this->assertNull( ( $this->sut->get_cached_object( $group ) ) );
}
}