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)); }