packages/ztd-query-sqlite/tests/Unit/Sql/Value/ValueExpressionRendererTest.php

1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Sql\Value;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\Attributes\UsesClass;
9use PHPUnit\Framework\TestCase;
10use ZtdQuery\Platform\Sqlite\Sql\Value\ValueExpressionRenderer;
11
12#[CoversClass(ValueExpressionRenderer::class)]
13#[UsesClass(\ZtdQuery\Platform\Sqlite\Sql\Value\ValueLiteralRenderer::class)]
14final class ValueExpressionRendererTest extends TestCase
15{
16    public function testRenderExpressionQuotesTypedValuesAndEscapesStrings(): void
17    {
18        $renderer = new ValueExpressionRenderer();
19        self::assertSame('42', $renderer->renderExpression(42, false));
20        self::assertSame("'42'", $renderer->renderExpression(42, true));
21        self::assertSame("'1'", $renderer->renderExpression(true, false));
22        self::assertSame("'0'", $renderer->renderExpression(false, true));
23        self::assertSame("'1.25'", $renderer->renderExpression(1.25, false));
24        self::assertSame("'O''Brien'", $renderer->renderExpression("O'Brien", false));
25    }
26
27}
28