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