*/ namespace Desarrolla2\Test\Cache; use Desarrolla2\Cache\Mysqli as MysqliCache; /** * MysqliTest */ class MysqliTest extends AbstractCacheTest { /** * @var \mysqli */ protected static $mysqli; protected $skippedTests = [ 'testBasicUsageWithLongKey' => 'Only support keys up to 255 bytes' ]; public static function setUpBeforeClass(): void { if (class_exists('mysqli')) { static::$mysqli = new \mysqli( ini_get('mysqli.default_host') ?: 'localhost', ini_get('mysqli.default_user') ?: 'root' ); } } public function init(): void { if (!class_exists('mysqli')) { $this->markTestSkipped("mysqli extension not loaded"); } try { static::$mysqli->query('CREATE DATABASE IF NOT EXISTS `' . CACHE_TESTS_MYSQLI_DATABASE . '`'); static::$mysqli->select_db(CACHE_TESTS_MYSQLI_DATABASE); static::$mysqli->query("CREATE TABLE IF NOT EXISTS `cache` " ."( `key` VARCHAR(255), `value` BLOB, `ttl` INT UNSIGNED, PRIMARY KEY (`key`) )"); } catch (\Exception $e) { $this->markTestSkipped("skipping mysqli test; " . $e->getMessage()); } if (static::$mysqli->error) { $this->markTestSkipped(static::$mysqli->error); } } public function createSimpleCache() { $this->init(); return (new MysqliCache(static::$mysqli)) ->withOption('initialize', false); } public static function tearDownAfterClass(): void { static::$mysqli->query('DROP DATABASE IF EXISTS `' . CACHE_TESTS_MYSQLI_DATABASE . '`'); static::$mysqli->close(); } }