diff options
| author | Sam Light <sam@lightscale.co.uk> | 2026-06-10 19:00:32 +0100 |
|---|---|---|
| committer | Sam Light <sam@lightscale.co.uk> | 2026-06-10 19:00:32 +0100 |
| commit | 48431dd32b3f73855f9463af41dba997a2962f9f (patch) | |
| tree | 654b8f6d5466aeef5fb36495c46e389c27d32eb9 /tests | |
| parent | a2eaccfa4d970bad833110337650904ae125642a (diff) | |
Added more methods to the PathSegment class and tests
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/Unit/PathSegmentTest.php | 68 | ||||
| -rw-r--r-- | tests/Unit/RouteTest.php | 2 |
2 files changed, 69 insertions, 1 deletions
diff --git a/tests/Unit/PathSegmentTest.php b/tests/Unit/PathSegmentTest.php new file mode 100644 index 0000000..1d19e0e --- /dev/null +++ b/tests/Unit/PathSegmentTest.php @@ -0,0 +1,68 @@ +<?php + +declare(strict_types=1); + +use Lightscale\Router\PathSegment; + +it('initializes') + ->expect(fn () => new PathSegment('test')) + ->toBeInstanceOf(PathSegment::class); + +it('can get the content') + ->expect(fn () => (new PathSegment('test'))->getContent()) + ->toBe('test'); + +it('can get the parent') + ->expect(fn () => (new PathSegment( + 'test1', + new PathSegment('test2') + ))->getParent()) + ->toBeInstanceOf(PathSegment::class) + ->getContent()->toBe('test2'); + +it('has null parent by default') + ->expect(fn () => (new PathSegment('test'))->getParent()) + ->toBeNull(); + +$testChain = fn () => new PathSegment( + 'test3', + new PathSegment( + 'test2', + new PathSegment( + 'test1' + ) + ) +); + +it('can get all ancestors') + ->expect(fn () => $testChain()->getAncestors()) + ->toBeArray() + ->toContainOnlyInstancesOf(PathSegment::class) + ->toHaveCount(2); + +it('order all ancestors root first') + ->expect(fn () => $testChain()->getAncestors()) + ->{0}->getContent()->toBe('test1') + ->{1}->getContent()->toBe('test2'); + +it('can get all ancestors and self') + ->expect(fn () => $testChain()->getAncestorsAndSelf()) + ->toBeArray() + ->toContainOnlyInstancesOf(PathSegment::class) + ->toHaveCount(3); + +it('order all ancestors and self root first') + ->expect(fn () => $testChain()->getAncestorsAndSelf()) + ->{0}->getContent()->toBe('test1') + ->{1}->getContent()->toBe('test2') + ->{2}->getContent()->toBe('test3'); + +it('can have children')->todo(); + +it('can build full path')->todo(); + +it('can have routes')->todo(); + +it('can get routes by method')->todo(); + +it('can get routes for all methods')->todo(); diff --git a/tests/Unit/RouteTest.php b/tests/Unit/RouteTest.php index 5e3dc3b..0414649 100644 --- a/tests/Unit/RouteTest.php +++ b/tests/Unit/RouteTest.php @@ -13,4 +13,4 @@ it('initializes') HttpMethod::Get, fn () => null )) - ->toBeInstance(Route::class); + ->toBeInstanceOf(Route::class); |
