packages/ztd-query-postgres/tests/Unit/Rewrite/View/PgSqlViewShadowRendererTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Rewrite\View;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\Attributes\UsesClass;
9use PHPUnit\Framework\TestCase;
10use ZtdQuery\Platform\Postgres\Rewrite\View\PgSqlViewShadowRenderer;
11use ZtdQuery\Platform\Postgres\Sql\Relation\PgSqlSelectRelationParser;
12use ZtdQuery\Schema\ViewDefinition;
13use ZtdQuery\Schema\ViewDefinitionSet;
14
15#[CoversClass(PgSqlViewShadowRenderer::class)]
16#[UsesClass(PgSqlSelectRelationParser::class)]
17#[UsesClass(\ZtdQuery\Platform\Postgres\Sql\PgSqlLexerProfile::class)]
18#[UsesClass(\ZtdQuery\Platform\Postgres\Sql\Relation\FromClause::class)]
19#[UsesClass(\ZtdQuery\Platform\Postgres\Sql\Relation\RelationReference::class)]
20final class PgSqlViewShadowRendererTest extends TestCase
21{
22 public function testRenderOrdersViewsAndUnqualifiesShadowedPostgreSqlRelations(): void
23 {
24 $views = new ViewDefinitionSet();
25 $views->register('summary', new ViewDefinition('SELECT count(*) FROM public."active_users"', ['active_users']));
26 $views->register('active_users', new ViewDefinition('SELECT * FROM public."users"', ['users']));
27
28 self::assertSame(
29 [
30 'active_users' => 'SELECT * FROM "users"',
31 'summary' => 'SELECT count(*) FROM "active_users"',
32 ],
33 (new PgSqlViewShadowRenderer())->render($views, ['users']),
34 );
35 }
36}
37