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