packages/ztd-query-core/tests/Unit/Exception/ColumnNotFoundExceptionTest.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\ColumnNotFoundException;
10
11#[CoversClass(ColumnNotFoundException::class)]
12final class ColumnNotFoundExceptionTest extends TestCase
13{
14    public function testGetMessageReturnsFormattedMessage(): void
15    {
16        $exception = new ColumnNotFoundException(
17            'SELECT email FROM users',
18            'users',
19            'email'
20        );
21
22        self::assertSame("Column 'email' does not exist in table 'users'.", $exception->getMessage());
23    }
24
25    public function testGetSqlReturnsOriginalSql(): void
26    {
27        $sql = 'SELECT email FROM users';
28        $exception = new ColumnNotFoundException($sql, 'users', 'email');
29
30        self::assertSame($sql, $exception->getSql());
31    }
32
33    public function testGetTableNameReturnsTableName(): void
34    {
35        $exception = new ColumnNotFoundException(
36            'SELECT email FROM users',
37            'users',
38            'email'
39        );
40
41        self::assertSame('users', $exception->getTableName());
42    }
43
44    public function testGetColumnNameReturnsColumnName(): void
45    {
46        $exception = new ColumnNotFoundException(
47            'SELECT email FROM users',
48            'users',
49            'email'
50        );
51
52        self::assertSame('email', $exception->getColumnName());
53    }
54
55}
56