public function getMatchingArtifacts(User $user, Project $project, array $tracker_ids, Tracker_Hierarchy $hierarchy, Tracker_CrossSearch_Query $query, $excluded_artifact_ids = array()) { $shared_fields = $this->shared_field_factory->getSharedFields($query->getSharedFields()); $semantic_fields = $query->getSemanticCriteria(); $artifacts_info = $this->dao->searchMatchingArtifacts($user, $project->getId(), $query, $tracker_ids, $shared_fields, $semantic_fields, $this->artifact_link_field_ids_for_column_display, $excluded_artifact_ids); if ($query->isEmpty()) { return $this->result_sorter->buildTreeWithCompleteList($artifacts_info, $tracker_ids, $hierarchy); } else { return $this->result_sorter->buildTreeWithMissingChildren($user, $artifacts_info, $excluded_artifact_ids); } }
function itReturnsArtifactFromTrackersOutsidesHierarchy() { $tracker_hierarchy = $this->GivenATrackerHierarchy(); $trackerIds = array(111, 112, 113, 666); $artifact_factory = new MockedArtifactFactory(); $sorter = new Tracker_Hierarchy_Sorter($artifact_factory); $artifacts_dar = $this->getResultsForTrackerOutsideHierarchy(); $artifacts = $sorter->buildTreeWithCompleteList($artifacts_dar, $trackerIds, $tracker_hierarchy); $expected = $this->getExpectedForTrackerOutsideHierarchy($artifact_factory); $this->assertEqual($artifacts->__toString(), $expected->__toString()); }