packages/ztd-query-core/tests/Unit/Config/UnknownSchemaBehaviorTest.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\UnknownSchemaBehavior;
10
11#[CoversClass(UnknownSchemaBehavior::class)]
12final class UnknownSchemaBehaviorTest extends TestCase
13{
14 public function testCasesReturnsAllCases(): void
15 {
16 $cases = UnknownSchemaBehavior::cases();
17
18 self::assertCount(4, $cases);
19 self::assertContains(UnknownSchemaBehavior::Passthrough, $cases);
20 self::assertContains(UnknownSchemaBehavior::EmptyResult, $cases);
21 self::assertContains(UnknownSchemaBehavior::Notice, $cases);
22 self::assertContains(UnknownSchemaBehavior::Exception, $cases);
23 }
24
25 public function testCaseHasCorrectValue(): void
26 {
27 self::assertSame('passthrough', UnknownSchemaBehavior::Passthrough->value);
28 self::assertSame('empty', UnknownSchemaBehavior::EmptyResult->value);
29 self::assertSame('notice', UnknownSchemaBehavior::Notice->value);
30 self::assertSame('exception', UnknownSchemaBehavior::Exception->value);
31 }
32
33 public function testFromReturnsCorrectCase(): void
34 {
35 self::assertSame(UnknownSchemaBehavior::Passthrough, UnknownSchemaBehavior::from('passthrough'));
36 self::assertSame(UnknownSchemaBehavior::EmptyResult, UnknownSchemaBehavior::from('empty'));
37 self::assertSame(UnknownSchemaBehavior::Notice, UnknownSchemaBehavior::from('notice'));
38 self::assertSame(UnknownSchemaBehavior::Exception, UnknownSchemaBehavior::from('exception'));
39 }
40
41 public function testTryFromReturnsNullForInvalidValue(): void
42 {
43 $result = UnknownSchemaBehavior::tryFrom('invalid');
44
45 self::assertSame(null, $result);
46 }
47}
48