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();