packages/ztd-query-postgres/tests/Unit/Sql/Merge/PgSqlMergeClauseTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Sql\Merge;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\Attributes\UsesClass;
9use PHPUnit\Framework\TestCase;
10use ZtdQuery\Platform\Postgres\Sql\Merge\PgSqlMergeActionKind;
11use ZtdQuery\Platform\Postgres\Sql\Merge\PgSqlMergeClause;
12use ZtdQuery\Platform\Postgres\Sql\Merge\PgSqlMergeMatchKind;
13
14#[CoversClass(PgSqlMergeClause::class)]
15#[UsesClass(PgSqlMergeActionKind::class)]
16#[UsesClass(PgSqlMergeMatchKind::class)]
17final class PgSqlMergeClauseTest extends TestCase
18{
19 public function testCarriesTypedClauseData(): void
20 {
21 $clause = new PgSqlMergeClause(
22 PgSqlMergeMatchKind::Matched,
23 'source.enabled',
24 PgSqlMergeActionKind::Update,
25 ['name' => 'source.name'],
26 );
27
28 self::assertSame(PgSqlMergeMatchKind::Matched, $clause->matchKind);
29 self::assertSame('source.enabled', $clause->conditionSql);
30 self::assertSame(PgSqlMergeActionKind::Update, $clause->actionKind);
31 self::assertSame(['name' => 'source.name'], $clause->assignments);
32 self::assertSame([], $clause->insertColumns);
33 self::assertSame([], $clause->insertValues);
34 }
35}
36