packages/sql-fixture/tests/Unit/Schema/Exception/InvalidSqlExceptionTest.php

1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Schema\Exception;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\Attributes\UsesClass;
9use PHPUnit\Framework\TestCase;
10
11#[CoversClass(\SqlFixture\Schema\Exception\InvalidSqlException::class)]
12#[UsesClass(\SqlFixture\Schema\SchemaParseException::class)]
13#[UsesClass(\SqlFixture\Schema\Exception\ExpectedCreateTableException::class)]
14#[UsesClass(\SqlFixture\Schema\Exception\MissingColumnDefinitionsException::class)]
15final class InvalidSqlExceptionTest extends TestCase
16{
17    public function testDescribesInvalidSql(): void
18    {
19        $exception = new \SqlFixture\Schema\Exception\InvalidSqlException('SELECT 1', 'Not a CREATE TABLE');
20        self::assertSame('Failed to parse SQL: Not a CREATE TABLE. SQL: SELECT 1', $exception->getMessage());
21        self::assertSame('SELECT 1', $exception->sql);
22        self::assertSame('Not a CREATE TABLE', $exception->reason);
23    }
24}
25