test: tolerate PDO numeric strings on PHP < 8.1

assertEquals for integer-ish fetchField values; keep assertSame for
false / empty string and assertNull for SQL NULL.
pull/727/head
Ambrose Casanova 4 days ago
parent 386bdc16a7
commit 9681cd20c8

@ -68,7 +68,8 @@ class PdoWrapperTest extends TestCase
public function testFetchField(): void public function testFetchField(): void
{ {
$id = $this->pdo_wrapper->fetchField('SELECT id FROM test WHERE name = ?', ['two']); $id = $this->pdo_wrapper->fetchField('SELECT id FROM test WHERE name = ?', ['two']);
$this->assertSame(2, $id); // PDO SQLite may return numeric strings on PHP < 8.1
$this->assertEquals(2, $id);
} }
public function testFetchFieldReturnsFalseWhenNoResults(): void public function testFetchFieldReturnsFalseWhenNoResults(): void
@ -87,7 +88,8 @@ class PdoWrapperTest extends TestCase
public function testFetchFieldReturnsZero(): void public function testFetchFieldReturnsZero(): void
{ {
$value = $this->pdo_wrapper->fetchField('SELECT 0'); $value = $this->pdo_wrapper->fetchField('SELECT 0');
$this->assertSame(0, $value); // PDO SQLite may return '0' on PHP < 8.1
$this->assertEquals(0, $value);
} }
public function testFetchFieldReturnsEmptyString(): void public function testFetchFieldReturnsEmptyString(): void

@ -466,7 +466,8 @@ class SimplePdoTest extends TestCase
public function testFetchFieldReturnsFirstColumn(): void public function testFetchFieldReturnsFirstColumn(): void
{ {
$id = $this->db->fetchField('SELECT id, name FROM users WHERE id = ?', [1]); $id = $this->db->fetchField('SELECT id, name FROM users WHERE id = ?', [1]);
$this->assertSame(1, $id); // PDO SQLite may return numeric strings on PHP < 8.1
$this->assertEquals(1, $id);
} }
public function testFetchFieldReturnsFalseWhenNoResults(): void public function testFetchFieldReturnsFalseWhenNoResults(): void
@ -485,7 +486,8 @@ class SimplePdoTest extends TestCase
public function testFetchFieldReturnsZero(): void public function testFetchFieldReturnsZero(): void
{ {
$value = $this->db->fetchField('SELECT 0'); $value = $this->db->fetchField('SELECT 0');
$this->assertSame(0, $value); // PDO SQLite may return '0' on PHP < 8.1
$this->assertEquals(0, $value);
} }
public function testFetchFieldReturnsEmptyString(): void public function testFetchFieldReturnsEmptyString(): void

Loading…
Cancel
Save