packages/sql-faker/tests/Unit/Generation/Token/RewriteRuleTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\SqlFaker\Generation\Token;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\Attributes\UsesClass;
9use PHPUnit\Framework\TestCase;
10use SqlFaker\Generation\Token\RewriteRule;
11use SqlFaker\Generation\Token\TerminalMappingRule;
12use SqlFaker\Generation\Token\TerminalSequence;
13
14#[CoversClass(RewriteRule::class)]
15#[UsesClass(TerminalMappingRule::class)]
16#[UsesClass(TerminalSequence::class)]
17#[UsesClass(\SqlFaker\Generation\Token\TerminalOccurrence::class)]
18#[UsesClass(\SqlFaker\Generation\Token\ProductionOccurrence::class)]
19final class RewriteRuleTest extends TestCase
20{
21 public function testRewriteContractRetainsNonMatchingInput(): void
22 {
23 $rule = new TerminalMappingRule('option', 'IDENT', 'MODE', 'source');
24 $input = TerminalSequence::fromNames(['IDENT']);
25 self::assertSame($input, $rule->rewrite($input));
26 }
27}
28