packages/ztd-query-sqlite/tests/Unit/Sql/Dml/Expression/AssignmentColumnParserTest.php

1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Sql\Dml\Expression;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\Attributes\UsesClass;
9use PHPUnit\Framework\TestCase;
10use ZtdQuery\Platform\Sqlite\Sql\Dml\Expression\AssignmentColumnParser;
11
12#[CoversClass(AssignmentColumnParser::class)]
13#[UsesClass(\ZtdQuery\Platform\Sqlite\Sql\Lexing\IdentifierDecoder::class)]
14final class AssignmentColumnParserTest extends TestCase
15{
16    public function testParseReturnsTargetAndExpressionBoundary(): void
17    {
18        $parser = new AssignmentColumnParser();
19        self::assertSame(['name' => 'name', 'end' => 4], $parser->parse('name = 1', 0));
20        self::assertSame(['name' => 'full name', 'end' => 11], $parser->parse('"full name" = 1', 0));
21        self::assertSame(['name' => 'name', 'end' => 6], $parser->parse('t.name=1', 0));
22        self::assertSame(['name' => 'name', 'end' => 8], $parser->parse('  [name]=1', 2));
23    }
24
25}
26