Code tweaks for slightly better test coverage

This commit is contained in:
Timothy Warren 2023-03-16 16:23:41 -04:00
parent cef8d2c944
commit df61334bb4
7 changed files with 12 additions and 17 deletions

View File

@ -76,7 +76,7 @@ class ApcuDriver extends AbstractDriver {
$this->validateKeys($keys); $this->validateKeys($keys);
$status = FALSE; $status = FALSE;
return apcu_fetch($keys, $status); return (array)apcu_fetch($keys, $status);
} }
/** /**

View File

@ -78,13 +78,11 @@ class RedisDriver extends AbstractDriver {
*/ */
public function get(string $key): mixed public function get(string $key): mixed
{ {
$raw = $this->conn->get($key); $raw = $this->conn->get($key) ?? '';
if ($raw === NULL) $parsed = @unserialize($raw);
{ $hasError = is_array(error_get_last());
return null;
}
return unserialize($raw); return ($hasError) ? NULL : $parsed;
} }
/** /**

View File

@ -25,6 +25,7 @@ use JsonSerializable;
* *
* @see http://php.net/manual/en/class.arrayiterator.php * @see http://php.net/manual/en/class.arrayiterator.php
* @see http://php.net/manual/en/class.jsonserializable.php * @see http://php.net/manual/en/class.jsonserializable.php
* @extends ArrayIterator<string, CacheItemInterface>
*/ */
class ItemCollection extends ArrayIterator implements JsonSerializable { class ItemCollection extends ArrayIterator implements JsonSerializable {
@ -39,7 +40,7 @@ class ItemCollection extends ArrayIterator implements JsonSerializable {
* Create the collection object from the raw * Create the collection object from the raw
* CacheItemInterface array * CacheItemInterface array
* *
* @param array $items - array of CacheItemInterface objects * @param CacheItemInterface[] $items - array of CacheItemInterface objects
* @param int $flags - flags * @param int $flags - flags
*/ */
public function __construct(array $items = [], int $flags = 0) public function __construct(array $items = [], int $flags = 0)
@ -51,7 +52,7 @@ class ItemCollection extends ArrayIterator implements JsonSerializable {
/** /**
* Specify what data to serialize when using `json_encode` * Specify what data to serialize when using `json_encode`
* *
* @return array - The full set of data to be serialized * @return CacheItemInterface[] - The full set of data to be serialized
*/ */
public function jsonSerialize(): array public function jsonSerialize(): array
{ {

View File

@ -26,6 +26,7 @@ use function is_string;
*/ */
final class Pool implements CacheItemPoolInterface, LoggerAwareInterface { final class Pool implements CacheItemPoolInterface, LoggerAwareInterface {
use _Driver; use _Driver;
use KeyValidateTrait;
use LoggerTrait; use LoggerTrait;
/** /**

View File

@ -24,6 +24,7 @@ use Psr\SimpleCache;
*/ */
class Teller implements LoggerAwareInterface, SimpleCache\CacheInterface { class Teller implements LoggerAwareInterface, SimpleCache\CacheInterface {
use _Driver; use _Driver;
use KeyValidateTrait;
use LoggerTrait; use LoggerTrait;
/** /**

View File

@ -21,20 +21,13 @@ use Aviat\Banker\Driver\AbstractDriver;
* Private trait for shared driver-related functionality * Private trait for shared driver-related functionality
*/ */
trait _Driver { trait _Driver {
use KeyValidateTrait;
/** /**
* Driver class for handling the chosen caching backend * Driver class for handling the chosen caching backend
*
* @var AbstractDriver
*/ */
private AbstractDriver $driver; private AbstractDriver $driver;
/** /**
* Instantiate the appropriate cache backend based on the config * Instantiate the appropriate cache backend based on the config
*
* @param array $driverConfig
* @return AbstractDriver
*/ */
protected function loadDriver(array $driverConfig = []): AbstractDriver protected function loadDriver(array $driverConfig = []): AbstractDriver
{ {
@ -44,6 +37,7 @@ trait _Driver {
$driverConfig['connection'] = $driverConfig['connection'] ?? []; $driverConfig['connection'] = $driverConfig['connection'] ?? [];
$driverConfig['options'] = $driverConfig['options'] ?? []; $driverConfig['options'] = $driverConfig['options'] ?? [];
// @phpstan-ignore-next-line
return new $class($driverConfig['connection'], $driverConfig['options']); return new $class($driverConfig['connection'], $driverConfig['options']);
} }
} }

View File

@ -20,7 +20,7 @@ use PHPUnit\Framework\TestCase;
class ItemCollectionTest extends TestCase { class ItemCollectionTest extends TestCase {
protected $collection; protected ItemCollection $collection;
public function setUp(): void public function setUp(): void
{ {