packages/sql-parser/tests/Unit/Table/ActionCodeTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Table;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\Attributes\Small;
9use PHPUnit\Framework\TestCase;
10use SqlParser\Table\ActionCode;
11
12#[CoversClass(ActionCode::class)]
13#[Small]
14final class ActionCodeTest extends TestCase
15{
16 public function testShift(): void
17 {
18 self::assertSame(12, ActionCode::shift(12));
19 }
20
21 public function testReduce(): void
22 {
23 self::assertSame(-1, ActionCode::reduce(0));
24 self::assertSame(-6, ActionCode::reduce(5));
25 self::assertSame(ActionCode::ACCEPT, ActionCode::reduce(0));
26 }
27
28 public function testIsShift(): void
29 {
30 self::assertTrue(ActionCode::isShift(0));
31 self::assertFalse(ActionCode::isShift(-1));
32 self::assertFalse(ActionCode::isShift(ActionCode::ERROR));
33 }
34
35 public function testIsReduce(): void
36 {
37 self::assertTrue(ActionCode::isReduce(-3));
38 self::assertFalse(ActionCode::isReduce(3));
39 self::assertFalse(ActionCode::isReduce(ActionCode::ERROR));
40 }
41
42 public function testRule(): void
43 {
44 self::assertSame(5, ActionCode::rule(ActionCode::reduce(5)));
45 }
46}
47