packages/ztd-query-mysql/tests/Unit/Sql/Alter/OptionListTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Sql\Alter;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\TestCase;
9use ZtdQuery\Platform\MySql\Sql\Alter\OptionList;
10
11#[CoversClass(OptionList::class)]
12final class OptionListTest extends TestCase
13{
14 public function testHasAnyUsesTheParsersOptionValues(): void
15 {
16 $options = new \PhpMyAdmin\SqlParser\Components\OptionsArray(['ADD', 'COLUMN']);
17 self::assertTrue(OptionList::hasAny($options, ['DROP', 'ADD']));
18 self::assertFalse(OptionList::hasAny($options, ['DROP', 'KEY']));
19 self::assertFalse(OptionList::hasAny($options, []));
20 }
21
22 public function testUnknownKeywordsNormalizesUnparsedTokens(): void
23 {
24 $operation = new \PhpMyAdmin\SqlParser\Components\AlterOperation();
25 $operation->unknown = (new \PhpMyAdmin\SqlParser\Lexer('engine'))->list->tokens;
26 self::assertContains('ENGINE', OptionList::unknownKeywords($operation));
27 $operation->unknown = '';
28 self::assertSame([], OptionList::unknownKeywords($operation));
29 }
30
31}
32