packages/ztd-query-core/tests/Unit/Schema/Key/ForeignKeyDefinitionTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Schema\Key;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\TestCase;
9use ZtdQuery\Schema\Key\ForeignKeyDefinition;
10use ZtdQuery\Schema\Key\ReferentialAction;
11
12#[CoversClass(ForeignKeyDefinition::class)]
13final class ForeignKeyDefinitionTest extends TestCase
14{
15 public function testCarriesCompositeReferenceAndActions(): void
16 {
17 $definition = new ForeignKeyDefinition(
18 ['tenant_id', 'department_id'],
19 'departments',
20 ['tenant_id', 'id'],
21 ReferentialAction::Cascade,
22 ReferentialAction::SetNull,
23 );
24
25 self::assertSame(['tenant_id', 'department_id'], $definition->columns);
26 self::assertSame('departments', $definition->referencedTable);
27 self::assertSame(['tenant_id', 'id'], $definition->referencedColumns);
28 self::assertSame(ReferentialAction::Cascade, $definition->onDelete);
29 self::assertSame(ReferentialAction::SetNull, $definition->onUpdate);
30 }
31}
32