packages/ztd-query-mysql/tests/Unit/Sql/Relation/ExpressionNamesTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Sql\Relation;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\TestCase;
9use ZtdQuery\Platform\MySql\Sql\Relation\ExpressionNames;
10
11#[CoversClass(ExpressionNames::class)]
12final class ExpressionNamesTest extends TestCase
13{
14 public function testTablePrefersParsedNamesAndFallsBackToExpressions(): void
15 {
16 $expression = new \PhpMyAdmin\SqlParser\Components\Expression();
17 $expression->table = 'users';
18 $expression->expr = 'app.users';
19 self::assertSame('users', ExpressionNames::table($expression));
20 $expression->table = '';
21 self::assertSame('app.users', ExpressionNames::table($expression));
22 }
23
24 public function testAliasPrefersExplicitAliases(): void
25 {
26 $expression = new \PhpMyAdmin\SqlParser\Components\Expression();
27 $expression->table = 'users';
28 $expression->alias = 'u';
29 self::assertSame('u', ExpressionNames::alias($expression));
30 $expression->alias = '';
31 self::assertSame('users', ExpressionNames::alias($expression));
32 }
33
34}
35