packages/ztd-query-core/tests/Fake/FakeErrorClassifier.php

1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Fake;
6
7use ZtdQuery\Connection\Exception\DatabaseException;
8use ZtdQuery\Platform\ErrorClassifier;
9
10/**
11 * Fake ErrorClassifier that classifies errors based on driver error code.
12 *
13 * Uses a simple convention: driver error codes 1000-1999 are schema errors.
14 */
15final class FakeErrorClassifier implements ErrorClassifier
16{
17    /**
18     * Reports whether unknown schema error.
19     *
20     * @param DatabaseException $e
21     * @return bool
22     */
23    public function isUnknownSchemaError(DatabaseException $e): bool
24    {
25        $code = $e->getDriverErrorCode();
26
27        if ($code === null) {
28            return false;
29        }
30
31        return $code >= 1000 && $code <= 1999;
32    }
33}
34