/**
  * @static
  * @param $repository
  * @param $nameSpace
  * @return Tx_PtExtbase_Tree_NodePathBuilder
  */
 public static function getInstanceByRepositoryAndNamespace($repository, $nameSpace)
 {
     if (!self::$instances[$repository . $nameSpace]) {
         $instance = new Tx_PtExtbase_Tree_NodePathBuilder();
         $instance->setTree($instance->buildTree($repository, $nameSpace));
         self::$instances[$repository . $nameSpace] = $instance;
     }
     return self::$instances[$repository . $nameSpace];
 }
 /**
  * @test
  */
 public function getPathFromRootToNodeWithoutRoot()
 {
     $arguments = array('node' => 2, 'skipRoot' => true);
     $tree = $this->getTreeMock();
     $nodePathBuilder = new Tx_PtExtbase_Tree_NodePathBuilder();
     $nodePathBuilder->setTree($tree);
     $this->accessibleProxy->injectNodePathBuilder($nodePathBuilder);
     $this->accessibleProxy->_set('arguments', $arguments);
     $result = $this->accessibleProxy->_call('getPathFromRootToNode', $tree);
     $this->assertEquals(1, count($result));
     $this->assertEquals('firstSubNode', $result[0]->getLabel());
 }
 /**
  * @return array nodes in the path from root to node
  */
 protected function getPathFromRootToNode()
 {
     $node = $this->arguments['node'];
     $length = $this->arguments['length'];
     if ($this->arguments['skipRoot']) {
         $startIndex = 1;
     } else {
         $startIndex = $this->arguments['startIndex'];
     }
     $nodes = $this->nodePathBuilder->getPathFromRootToNode($node, $startIndex, $length);
     return $nodes;
 }