packages/ztd-query-core/tests/Unit/Platform/ErrorClassifierTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Platform;
6
7use PHPUnit\Framework\Attributes\CoversNothing;
8use PHPUnit\Framework\TestCase;
9use Tests\Fake\FakeErrorClassifier;
10use ZtdQuery\Connection\Exception\DatabaseException;
11
12#[CoversNothing]
13final class ErrorClassifierTest extends TestCase
14{
15 public function testIsUnknownSchemaErrorAnswersForAFailureThePlatformCallsOne(): void
16 {
17 $classifier = new FakeErrorClassifier();
18
19 self::assertTrue($classifier->isUnknownSchemaError(new DatabaseException('no such column', 1054)));
20 }
21
22 public function testIsUnknownSchemaErrorIsFalseForAFailureAboutSomethingElse(): void
23 {
24 $classifier = new FakeErrorClassifier();
25
26 self::assertFalse($classifier->isUnknownSchemaError(new DatabaseException('deadlock', 2013)));
27 }
28
29 public function testIsUnknownSchemaErrorIsFalseForAFailureTheDriverPutNoCodeOn(): void
30 {
31 $classifier = new FakeErrorClassifier();
32
33 self::assertFalse($classifier->isUnknownSchemaError(new DatabaseException('gone')));
34 }
35}
36