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