packages/ztd-query-pdo-adapter/tests/Integration/Sqlite/SelectQualifiedTableTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Integration\Sqlite;
6
7use PDO;
8use PHPUnit\Framework\Attributes\CoversNothing;
9use PHPUnit\Framework\Attributes\Large;
10use PHPUnit\Framework\TestCase;
11use ZtdQuery\Adapter\Pdo\ZtdPdo;
12
13/**
14 * @requires extension pdo_sqlite
15 */
16#[CoversNothing]
17#[Large]
18final class SelectQualifiedTableTest extends TestCase
19{
20 public function testMainQualifiedTableReadsShadowRows(): void
21 {
22 $rawPdo = new PDO('sqlite::memory:', null, null, [
23 PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
24 PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
25 ]);
26 $rawPdo->exec('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT NOT NULL)');
27 $ztdPdo = ZtdPdo::fromPdo($rawPdo);
28 $ztdPdo->exec("INSERT INTO users (id, name) VALUES (1, 'Alice')");
29
30 $statement = $ztdPdo->query('SELECT name FROM main.users WHERE id = 1');
31
32 self::assertNotFalse($statement);
33 self::assertSame([['name' => 'Alice']], $statement->fetchAll());
34 }
35}
36