packages/sql-catalog/tests/Unit/Core/Sql/DialectsTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Core\Sql;
6
7use PHPUnit\Framework\TestCase;
8
9#[\PHPUnit\Framework\Attributes\CoversClass(\SqlCatalog\Core\Sql\Dialects::class)]
10final class DialectsTest extends TestCase
11{
12 public function testFindSupportsApplicationIdentities(): void
13 {
14 $policy = self::createStub(\SqlCatalog\Core\Sql\Dialect::class);
15 $registry = new \SqlCatalog\Core\Sql\Dialects(['application' => $policy]);
16 self::assertSame($policy, $registry->find('application'));
17 self::assertNull($registry->find('unknown'));
18 self::assertNull($registry->find(null));
19 }
20
21 public function testHasConnectionUsesRegisteredClasses(): void
22 {
23 $registry = new \SqlCatalog\Core\Sql\Dialects(connections: ['App\Connection' => 'application']);
24 self::assertTrue($registry->hasConnection('App\Connection'));
25 self::assertFalse($registry->hasConnection('Unknown'));
26 self::assertFalse($registry->hasConnection(null));
27 }
28
29 public function testConnectionUsesTheConfiguredFallback(): void
30 {
31 $registry = new \SqlCatalog\Core\Sql\Dialects(connections: ['App\Connection' => 'application']);
32 self::assertSame('application', $registry->connection('App\Connection', 'default'));
33 self::assertSame('default', $registry->connection('Unknown', 'default'));
34 self::assertNull($registry->connection(null, null));
35 }
36}
37