/** * Create a tree from the given list according to the hierarchy definition * * @param DataAccessResult $artifacts * @param array $tracker_ids * @param Tracker_Hierarchy $hierarchy * * @return \TreeNode */ public function buildTreeWithCompleteList($artifacts, array $tracker_ids, Tracker_Hierarchy $hierarchy) { $root = new TreeNode(); $root->setId(0); if ($artifacts) { list($artifacts_by_id, $artifacts_by_tracker) = $this->indexArtifactsByIdAndTracker($artifacts); $tracker_ids = $hierarchy->sortTrackerIds($tracker_ids); $this->organizeArtifactsInTrackerHierarchy($root, $hierarchy, $artifacts_by_id, $artifacts_by_tracker, $tracker_ids); } return $root; }
public function itReturnsTrackersFromTopToBottomAndTrackerNotInHierarchyAtTheEnd() { $hierarchy = new Tracker_Hierarchy(); $hierarchy->addRelationship(112, 113); $hierarchy->addRelationship(111, 112); $this->assertEqual(array(111, 112, 113, 667, 668, 666), $hierarchy->sortTrackerIds(array(667, 111, 666, 112, 668, 113))); }