diff options
Diffstat (limited to 'tests/Unit/PathSegmentTest.php')
| -rw-r--r-- | tests/Unit/PathSegmentTest.php | 68 |
1 files changed, 68 insertions, 0 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(); |
