packages/ztd-query-postgres/tests/Unit/Schema/Reflection/Key/PrimaryColumnsTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Schema\Reflection\Key;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\TestCase;
9
10#[CoversClass(\ZtdQuery\Platform\Postgres\Schema\Reflection\Key\PrimaryColumns::class)]
11final class PrimaryColumnsTest extends TestCase
12{
13 public function testColumnsKeepsCatalogOrderAndSkipsInvalidMetadata(): void
14 {
15 $statement = self::createStub(\ZtdQuery\Connection\StatementInterface::class);
16 $statement->method('fetchAll')->willReturn([['column_name' => 'tenant_id'], ['column_name' => null], ['column_name' => 'id']]);
17 self::assertSame(['"tenant_id"', '"id"'], (new \ZtdQuery\Platform\Postgres\Schema\Reflection\Key\PrimaryColumns())->columns($statement));
18 self::assertSame([], (new \ZtdQuery\Platform\Postgres\Schema\Reflection\Key\PrimaryColumns())->columns(false));
19 }
20}
21