예제 #1
0
 public function testGetTree($nodata = false)
 {
     // get Root as tree
     $treeRoot = $this->object->getTree('1');
     $this->assertEquals(68, count($treeRoot), 'Root tree should have 68 nodes');
     $this->assertEquals('1', $treeRoot[0]->id, 'id for element 0 should be 1');
     $this->assertEquals('18', $treeRoot[1]->id, 'id for element 1 should be 18');
     $this->assertEquals('31', $treeRoot[2]->id, 'id for element 2 should be 31');
     $this->assertEquals('9', $treeRoot[67]->id, 'id for element 2 should be 31');
     // get Templates as tree
     $treeTemplates = $this->object->getTree(23);
     $this->assertEquals(5, count($treeTemplates), 'Templates tree should have 5 nodes');
     $this->assertEquals('23', $treeTemplates[0]->id, 'id for element 0 should be 23');
     $this->assertEquals('69', $treeTemplates[1]->id, 'id for element 1 should be 69');
     $this->assertEquals('70', $treeTemplates[2]->id, 'id for element 2 should be 70');
     $this->assertEquals('68', $treeTemplates[3]->id, 'id for element 2 should be 68');
     $this->assertEquals('71', $treeTemplates[4]->id, 'id for element 2 should be 71');
     // get Plugins as tree
     $treePlugins = $this->object->getTree(25);
     $this->assertEquals(1, count($treePlugins), 'Templates tree should have 5 nodes');
     $this->assertEquals('25', $treePlugins[0]->id, 'd for element 0 should be 25');
     // Get invalid node as tree
     $treeInvalid = $this->object->getTree(99999);
     $this->assertEquals(0, count($treeInvalid), 'Invalid tree should have 0 nodes');
     // Test with db error
     $badTable = new JTableCategory($this->badDB);
     $this->assertFalse($badTable->getTree(1), 'Line: ' . __LINE__ . ' Should fail with db error');
 }
예제 #2
0
 public function getTree($pk = null, $diagnostic = false)
 {
     $k = $this->_tbl_key;
     $pk = is_null($pk) ? $this->{$k} : $pk;
     if (!isset(self::$getTree[$pk][(int) $diagnostic])) {
         self::$getTree[$pk][(int) $diagnostic] = parent::getTree($pk, $diagnostic);
     }
     return self::$getTree[$pk][(int) $diagnostic];
 }