1
1
Fork 0
mirror of https://code.mensbeam.com/MensBeam/Arsse.git synced 2024-12-23 09:02:41 +00:00
Arsse/tests/cases/Db/PostgreSQL/TestResult.php
J. King 41bcffd6fb Correctly query PostgreSQL byte arrays
This required different workarouynd for the native and PDO interfaces
2020-11-03 17:52:20 -05:00

45 lines
1.5 KiB
PHP

<?php
/** @license MIT
* Copyright 2017 J. King, Dustin Wilson et al.
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse\TestCase\Db\PostgreSQL;
/**
* @group slow
* @covers \JKingWeb\Arsse\Db\PostgreSQL\Result<extended>
*/
class TestResult extends \JKingWeb\Arsse\TestCase\Db\BaseResult {
use \JKingWeb\Arsse\Test\DatabaseDrivers\PostgreSQL;
protected static $createMeta = "CREATE TABLE arsse_meta(key text primary key not null, value text)";
protected static $createTest = "CREATE TABLE arsse_test(id bigserial primary key)";
protected static $selectBlob = "SELECT '\\xDEADBEEF'::bytea as blob";
protected function makeResult(string $q): array {
$set = pg_query(static::$interface, $q);
return [static::$interface, $set];
}
public static function tearDownAfterClass(): void {
if (static::$interface) {
static::dbRaze(static::$interface);
@pg_close(static::$interface);
static::$interface = null;
}
parent::tearDownAfterClass();
}
public function testGetBlobRow(): void {
$exp = ['blob' => hex2bin("DEADBEEF")];
$test = new $this->resultClass(...$this->makeResult(self::$selectBlob));
$this->assertEquals($exp, $test->getRow());
}
public function testGetBlobValue(): void {
$exp = hex2bin("DEADBEEF");
$test = new $this->resultClass(...$this->makeResult(self::$selectBlob));
$this->assertEquals($exp, $test->getValue());
}
}