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