public function getPath($pk = null, $diagnostic = false) { $k = $this->_tbl_key; $pk = is_null($pk) ? $this->{$k} : $pk; if (!isset(self::$getPath[$pk][(int) $diagnostic])) { self::$getPath[$pk][(int) $diagnostic] = parent::getPath($pk, $diagnostic); } return self::$getPath[$pk][(int) $diagnostic]; }
public function testGetPath($nodata = true) { // Get path of ROOT node $pathRoot = $this->object->getPath(1); $this->assertEquals(1, count($pathRoot), 'Line: ' . __LINE__ . ' Root path should have 1 element'); $this->assertEquals('1', $pathRoot[0]->id, 'Line: ' . __LINE__ . ' Path of root should have id=1'); // Get path of Components node $pathComponents = $this->object->getPath(21); $this->assertEquals(5, count($pathComponents), 'Line: ' . __LINE__ . ' Components path should have 5 elements'); $this->assertEquals('1', $pathComponents[0]->id, 'Line: ' . __LINE__ . ' Element 0 should have id=1'); $this->assertEquals('14', $pathComponents[1]->id, 'Element 1 should have id=14'); $this->assertEquals('19', $pathComponents[2]->id, 'Element 2 should have id=19'); $this->assertEquals('20', $pathComponents[3]->id, 'Element 3 should have id=20'); $this->assertEquals('21', $pathComponents[4]->id, 'Element 4 should have id=21'); // Get path of invalid id $pathInvalid = $this->object->getPath(999); $this->assertEquals(0, count($pathInvalid), 'Invalid path should have zero elements'); // Get path database error $badTable = new JTableCategory($this->badDB); $this->assertFalse($badTable->getPath(1), 'Line: ' . __LINE__ . ' Should fail with db error'); }