Router.php

<?php

namespace Taeluf\ProjectViewer\Test;

class Router extends \Taeluf\Tester {

    // public function test

    public function testThrowWhenDirInvalid(){

    }
    public function testProjectPermissions(){

    }
    public function testSetupProject(){
        $dir = dirname(__DIR__).'/test-extra/SampleProjects/Taeluf/';
        $package = new Mock\Package([
            'projects'=>
            [
                'Taeluf'=>
                [
                    'url'=>'/docs/', 
                    'dir'=>$dir
                ]
            ]
        ]);
        $router = new \Taeluf\ProjectViewer\Router($package);
        $setup = $router->onRequest_Setup(null, '/docs/Liaison/Events.md');
        $active = $router->getActiveProject();

        $active->project = $active->project->name;
        $active = (array)$active;
        $target = (array)[
            'project'=>'Liaison',
            'branch'=>'version_2',
            'request'=>'Events.md',
            'mode'=>'docs',
            'file'=> $dir.'Liaison/version_2/0-docs/Events.md'
        ];

        return true
        &&  $this->compare($target['file'], $active['file'])
        &&  $this->compare($target, $active)
        ;
    }
}

Router::runAll();