packages/bison-parser/tests/Unit/Ast/Declaration/DefineTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Ast\Declaration;
6
7use BisonParser\Ast\Declaration\Define;
8use BisonParser\Ast\Declaration\DefineForm;
9use BisonParser\Ast\Location;
10use PHPUnit\Framework\Attributes\CoversClass;
11use PHPUnit\Framework\Attributes\Small;
12use PHPUnit\Framework\Attributes\UsesClass;
13use PHPUnit\Framework\TestCase;
14
15#[CoversClass(Define::class)]
16#[UsesClass(Location::class)]
17#[UsesClass(DefineForm::class)]
18#[Small]
19final class DefineTest extends TestCase
20{
21 public function testLocation(): void
22 {
23 $declaration = new Define('api.pure', 'full', DefineForm::Keyword, new Location(3, 1));
24
25 self::assertSame('3:1', (string) $declaration->location());
26 self::assertSame('api.pure', $declaration->variable);
27 self::assertSame('full', $declaration->value);
28 self::assertSame(DefineForm::Keyword, $declaration->form);
29 }
30}
31