packages/sql-faker/tests/Unit/Compiler/Bison/Ast/BisonRuleNodeTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\SqlFaker\Compiler\Bison\Ast;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\TestCase;
9use SqlFaker\Compiler\Bison\Ast\BisonAlternativeNode;
10use SqlFaker\Compiler\Bison\Ast\BisonRuleNode;
11
12#[CoversClass(BisonRuleNode::class)]
13#[CoversClass(BisonAlternativeNode::class)]
14final class BisonRuleNodeTest extends TestCase
15{
16 public function testName(): void
17 {
18 $rule = new BisonRuleNode('select_stmt', []);
19
20 self::assertSame('select_stmt', $rule->name);
21 }
22
23 public function testAlternatives(): void
24 {
25 $alt1 = new BisonAlternativeNode([], null, null, null, null);
26 $alt2 = new BisonAlternativeNode([], 'action', null, null, null);
27 $rule = new BisonRuleNode('expr', [$alt1, $alt2]);
28
29 self::assertSame([$alt1, $alt2], $rule->alternatives);
30 }
31}
32