packages/ztd-query-sqlite/tests/Unit/Connection/Parameter/ParameterReplacementsTest.php

1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Connection\Parameter;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\TestCase;
9use ZtdQuery\Platform\Sqlite\Connection\Parameter\ParameterReplacements;
10
11#[CoversClass(ParameterReplacements::class)]
12final class ParameterReplacementsTest extends TestCase
13{
14    public function testApplyUsesOriginalOffsetsDespiteLengthChanges(): void
15    {
16        self::assertSame('SELECT CAST(? AS INTEGER), CAST(:name AS TEXT)', (new ParameterReplacements())->apply('SELECT ?, :name', [
17            7 => ['length' => 1, 'sql' => 'CAST(? AS INTEGER)'],
18            10 => ['length' => 5, 'sql' => 'CAST(:name AS TEXT)'],
19        ]));
20        self::assertSame('SELECT 1', (new ParameterReplacements())->apply('SELECT 1', []));
21    }
22
23}
24