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