packages/deriver/tests/Unit/Deriver/Evaluator/Request/CallPathTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Deriver\Evaluator\Request;
6
7use Deriver\Deriver\Evaluator\Request\CallPath;
8use Deriver\Exception\InvalidInputException;
9use PHPUnit\Framework\Attributes\CoversNothing;
10use PHPUnit\Framework\TestCase;
11
12#[CoversNothing]
13final class CallPathTest extends TestCase
14{
15 public function testCallPathRejectsAnEmptyPattern(): void
16 {
17 $this->expectException(InvalidInputException::class);
18 new CallPath([]);
19 }
20
21 public function testAdvanceSeparatesExactAndArbitraryDepthEdges(): void
22 {
23 $path = new CallPath(['entry','...','bar']);
24 self::assertSame([1], $path->advance('BAR', 2));
25 self::assertSame([], $path->advance('other', 2));
26 self::assertSame([-1,1], $path->advance('\\ENTRY', 1));
27 self::assertSame([1], $path->advance('intermediate', 1));
28 }
29}
30