packages/sql-parser/tests/Unit/Sqlite/SqliteVersionTest.php

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