packages/ztd-query-pdo-adapter/tests/Integration/Sqlite/DiagnosticStatementTest.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 DiagnosticStatementTest extends TestCase
19{
20 public function testExplainQueryPlanExecutesAgainstPhysicalDatabase(): 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
29 $statement = $ztdPdo->query('EXPLAIN QUERY PLAN SELECT * FROM users WHERE id = 1');
30
31 self::assertNotFalse($statement);
32 self::assertNotSame([], $statement->fetchAll());
33 }
34}
35