packages/ztd-query-core/tests/Unit/Platform/ValueRendererTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Platform;
6
7use PHPUnit\Framework\Attributes\CoversNothing;
8use PHPUnit\Framework\TestCase;
9use Tests\Fake\FakeValueRenderer;
10use ZtdQuery\Schema\ColumnDeclaration;
11use ZtdQuery\Schema\ColumnTypeFamily;
12
13#[CoversNothing]
14final class ValueRendererTest extends TestCase
15{
16 public function testRenderValueWritesNullAsSqlSpellsIt(): void
17 {
18 self::assertSame('NULL', (new FakeValueRenderer())->renderValue(null));
19 }
20
21 public function testRenderValueWritesTextQuotedAndItsQuotesDoubled(): void
22 {
23 self::assertSame("'a''b'", (new FakeValueRenderer())->renderValue("a'b"));
24 }
25
26 public function testRenderValueWritesANumberWithoutQuotes(): void
27 {
28 self::assertSame('7', (new FakeValueRenderer())->renderValue(7));
29 }
30
31 public function testRenderValueTakesTheColumnTypeIntoAccountWhereOneIsKnown(): void
32 {
33 self::assertSame(
34 "'7'",
35 (new FakeValueRenderer())->renderValue(7, new ColumnDeclaration(ColumnTypeFamily::TEXT, 'text')),
36 );
37 }
38}
39