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