Example #1
0
 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');
 }