packages/ztd-query-core/tests/Unit/Config/UnsupportedSqlBehaviorTest.php

1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Config;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\TestCase;
9use ZtdQuery\Config\UnsupportedSqlBehavior;
10
11#[CoversClass(UnsupportedSqlBehavior::class)]
12final class UnsupportedSqlBehaviorTest extends TestCase
13{
14    public function testCasesReturnsAllCases(): void
15    {
16        $cases = UnsupportedSqlBehavior::cases();
17
18        self::assertCount(3, $cases);
19        self::assertContains(UnsupportedSqlBehavior::Ignore, $cases);
20        self::assertContains(UnsupportedSqlBehavior::Notice, $cases);
21        self::assertContains(UnsupportedSqlBehavior::Exception, $cases);
22    }
23
24    public function testCaseHasCorrectValue(): void
25    {
26        self::assertSame('ignore', UnsupportedSqlBehavior::Ignore->value);
27        self::assertSame('notice', UnsupportedSqlBehavior::Notice->value);
28        self::assertSame('exception', UnsupportedSqlBehavior::Exception->value);
29    }
30
31    public function testFromReturnsCorrectCase(): void
32    {
33        self::assertSame(UnsupportedSqlBehavior::Ignore, UnsupportedSqlBehavior::from('ignore'));
34        self::assertSame(UnsupportedSqlBehavior::Notice, UnsupportedSqlBehavior::from('notice'));
35        self::assertSame(UnsupportedSqlBehavior::Exception, UnsupportedSqlBehavior::from('exception'));
36    }
37
38    public function testTryFromReturnsNullForInvalidValue(): void
39    {
40        $result = UnsupportedSqlBehavior::tryFrom('invalid');
41
42        self::assertSame(null, $result);
43    }
44}
45