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