public function _itRemovesFromQueryArtifactIdsThatAreNotReadableByUser() { $user = mock('User'); $release_tracker_id = 999; $release_tracker = aTracker()->withId($release_tracker_id)->build(); $sprint_tracker_id = 666; $sprint_tracker = aTracker()->withId($sprint_tracker_id)->build(); $artifacts_ids = array($release_tracker_id => array(1, 512), $sprint_tracker_id => array(33)); $query = aCrossSearchCriteria()->withArtifactIds($artifacts_ids)->build(); $report = new MockTracker_Report(); $artifact1 = new Tracker_Artifact(1, $release_tracker_id, null, null, null); stub($this->artifact_factory)->getArtifactsByTrackerIdUserCanView($user, $release_tracker_id)->returns(array($artifact1)); stub($this->artifact_factory)->getArtifactsByTrackerIdUserCanView($user, $sprint_tracker_id)->returns(array()); $this->planning_trackers = array($release_tracker, $sprint_tracker); $builder = new Tracker_CrossSearch_CriteriaBuilder($this->form_element_factory, $this->semantic_factory, $this->planning_trackers); $builder->getArtifactLinkCriteria($user, $report, $query); $this->assertEqual($query->listArtifactIds(), array(1)); }
/** * Call getCriteria on this criteria_builder * * @param PFUser $user an user * @param Project $project a project * @param Tracker_Report $report a tracker report * @param Tracker_CrossSearch_Query $cross_search_query a cross search query * * @return array of Tracker_Report_Criteria */ protected function getCriteria(PFUser $user, Project $project, Tracker_Report $report, Tracker_CrossSearch_Query $cross_search_query) { return $this->criteria_builder->getCriteria($user, $project, $report, $cross_search_query); }