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'); }
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]; }