packages/ztd-query-mysql/tests/Unit/Rewrite/Transformer/InsertRowRendererTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Rewrite\Transformer;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\TestCase;
9use ZtdQuery\Platform\MySql\Rewrite\Transformer\InsertRowRenderer;
10
11#[CoversClass(InsertRowRenderer::class)]
12final class InsertRowRendererTest extends TestCase
13{
14 public function testRenderParsesMySqlDefaultAndRendersCompleteRow(): void
15 {
16 $renderer = new InsertRowRenderer();
17 $provided = $renderer->providedExpressions(['id', 'name'], [' default ', " 'Ada' "]);
18
19 self::assertSame(['name' => "'Ada'"], $provided);
20 self::assertSame([
21 'id' => '8',
22 'name' => "'Ada'",
23 'status' => "'active'",
24 'note' => 'NULL',
25 ], $renderer->render(
26 ['id', 'name', 'status', 'note'],
27 $provided,
28 ['id' => '99', 'status' => "'active'"],
29 ['id' => 8],
30 ));
31 }
32
33
34
35 public function testProvidedExpressionsPreservesEveryProvidedMySqlExpression(): void
36 {
37 self::assertSame(
38 ['id' => '42', 'name' => "'Ada'"],
39 (new InsertRowRenderer())->providedExpressions(['id', 'name'], ['42', "'Ada'"]),
40 );
41 }
42}
43