packages/ztd-query-pdo-adapter/tests/Unit/Session/ParameterKindTest.php

1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Session;
6
7use PDO;
8use PHPUnit\Framework\Attributes\CoversClass;
9use PHPUnit\Framework\TestCase;
10use ZtdQuery\Adapter\Pdo\Session\ParameterKind;
11
12#[CoversClass(ParameterKind::class)]
13final class ParameterKindTest extends TestCase
14{
15    public function testFromTypeMapsPhpValuesToPdoParameterTypes(): void
16    {
17        $resource = fopen('php://memory', 'r');
18        self::assertIsResource($resource);
19
20        self::assertSame(PDO::PARAM_NULL, ParameterKind::fromType(gettype(null)));
21        self::assertSame(PDO::PARAM_BOOL, ParameterKind::fromType(gettype(true)));
22        self::assertSame(PDO::PARAM_INT, ParameterKind::fromType(gettype(7)));
23        self::assertSame(PDO::PARAM_LOB, ParameterKind::fromType(gettype($resource)));
24        self::assertSame(PDO::PARAM_STR, ParameterKind::fromType(gettype('value')));
25        self::assertSame(PDO::PARAM_STR, ParameterKind::fromType(gettype(1.5)));
26        fclose($resource);
27    }
28}
29