packages/ztd-query-core/tests/Unit/Exception/SqlParseExceptionTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Exception;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\TestCase;
9use ZtdQuery\Exception\SqlParseException;
10
11#[CoversClass(SqlParseException::class)]
12final class SqlParseExceptionTest extends TestCase
13{
14 public function testGetMessageReturnsFormattedMessage(): void
15 {
16 $exception = new SqlParseException(
17 'SELECT * FORM users',
18 'Unexpected token "FORM" at position 9'
19 );
20
21 self::assertSame('SQL syntax error: Unexpected token "FORM" at position 9', $exception->getMessage());
22 }
23
24 public function testGetSqlReturnsOriginalSql(): void
25 {
26 $sql = 'SELECT * FORM users';
27 $exception = new SqlParseException($sql, 'error message');
28
29 self::assertSame($sql, $exception->getSql());
30 }
31
32 public function testGetParseErrorReturnsParseError(): void
33 {
34 $parseError = 'Unexpected token "FORM" at position 9';
35 $exception = new SqlParseException('sql', $parseError);
36
37 self::assertSame($parseError, $exception->getParseError());
38 }
39
40}
41