packages/sql-parser/tests/Unit/PostgreSql/PostgreSqlVersionTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\PostgreSql;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\Attributes\Small;
9use PHPUnit\Framework\Attributes\UsesClass;
10use PHPUnit\Framework\TestCase;
11use RuntimeException;
12use SqlParser\PostgreSql\PostgreSqlVersion;
13use SqlParser\Resource\SqlVersion;
14use SqlParser\Resource\VersionRegistry;
15
16#[CoversClass(PostgreSqlVersion::class)]
17#[UsesClass(SqlVersion::class)]
18#[UsesClass(VersionRegistry::class)]
19#[Small]
20final class PostgreSqlVersionTest extends TestCase
21{
22 public function testResolve(): void
23 {
24 self::assertSame('pg-17.2', PostgreSqlVersion::resolve()->name());
25 self::assertSame('pg-17.2', PostgreSqlVersion::resolve('pg-17.2')->release->name);
26 }
27
28 public function testResolveRejectsAnUnknownRelease(): void
29 {
30 $this->expectException(RuntimeException::class);
31
32 PostgreSqlVersion::resolve('pg-9.6');
33 }
34
35 public function testName(): void
36 {
37 self::assertSame('pg-17.2', PostgreSqlVersion::resolve('pg-17.2')->name());
38 }
39}
40