packages/ztd-query-mysql/tests/Unit/Rewrite/Transformer/Set/ValueNormalizerTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Rewrite\Transformer\Set;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\TestCase;
9use ZtdQuery\Platform\MySql\Rewrite\Transformer\Set\ValueNormalizer;
10
11#[CoversClass(ValueNormalizer::class)]
12final class ValueNormalizerTest extends TestCase
13{
14 public function testNormalizeSetValue(): void
15 {
16 $normalizer = new ValueNormalizer();
17 self::assertSame('red,blue', $normalizer->normalizeSetValue('blue, red,blue,unknown', "SET('red','green','blue')"));
18 self::assertSame('', $normalizer->normalizeSetValue('', "SET('red')"));
19 self::assertSame('blue', $normalizer->normalizeSetValue('blue', "SET('red')"));
20 self::assertSame('blue,red', $normalizer->normalizeSetValue('blue,red', 'TEXT'));
21 }
22
23 public function testExtractSetMembers(): void
24 {
25 $normalizer = new ValueNormalizer();
26 self::assertSame(['red', "it's", ''], $normalizer->extractSetMembers("SET('red','it''s','')"));
27 self::assertSame(['red', 'blue'], $normalizer->extractSetMembers(' SET(red, blue) '));
28 self::assertSame([], $normalizer->extractSetMembers('ENUM(1,2)'));
29 }
30
31}
32