public function itThrowsAnExceptionIfTheServiceTrackerIsntActivated()
 {
     $user = aUser()->build();
     $project = new MockProject();
     $builder = new Tracker_CrossSearch_SearchViewBuilder(new MockTracker_FormElementFactory(), new MockTrackerFactory(), new MockTracker_CrossSearch_Search(), new MockTracker_CrossSearch_CriteriaBuilder());
     $this->expectException('Tracker_CrossSearch_ServiceNotUsedException');
     $cross_search_criteria = aCrossSearchCriteria()->forOpenItems()->build();
     $builder->build($user, $project, $cross_search_criteria);
 }
Exemple #2
0
 public function itPassesTheCriteriaToTheDao()
 {
     $tracker_hierarchy = $this->GivenATrackerHierarchy();
     $query = aCrossSearchCriteria()->withArtifactIds(array(200 => array(4, 6)))->build();
     $this->searchDao->expectOnce('searchMatchingArtifacts', array($this->user, $this->project_id, new EqualExpectation($query), '*', '*', '*', '*', '*'));
     stub($this->searchDao)->searchMatchingArtifacts()->returns(array());
     $this->search = new Tracker_CrossSearch_Search($this->sharedFieldFactory, $this->searchDao, $this->hierarchy_factory, $this->artifact_link_field_ids);
     $this->search->getMatchingArtifacts($this->user, $this->project, array(), $tracker_hierarchy, $query);
 }
Exemple #3
0
 public function setUp()
 {
     parent::setUp();
     $this->backlog_tracker_id = 486;
     $this->backlog_tracker_ids = array($this->backlog_tracker_id, 123, 456);
     $this->backlog_actions_presenter = mock('Planning_BacklogActionsPresenter');
     $this->formElementFactory = mock('Tracker_FormElementFactory');
     $this->tracker_factory = mock('TrackerFactory');
     $this->search = mock('Tracker_CrossSearch_Search');
     $this->criteria_builder = mock('Tracker_CrossSearch_CriteriaBuilder');
     $this->tracker_factory->setReturnValue('getTrackersByGroupIdUserCanView', $this->backlog_tracker_id);
     $this->criteria_builder->setReturnValue('getCriteria', array());
     $this->user = aUser()->build();
     $this->project = mock('Project');
     $this->cross_search_criteria = aCrossSearchCriteria()->build();
     $this->builder = new Planning_ViewBuilder($this->formElementFactory, $this->search, $this->criteria_builder);
     $this->planning = aPlanning()->build();
 }
 public function itAssumesNoCriteriaIfRequestedCriterieIsNotValid()
 {
     $shared_fields_criteria = array('invalid parameter type');
     $semantic_criteria = array('another invalid parameter type');
     $expectedCriteria = aCrossSearchCriteria()->withSharedFieldsCriteria($shared_fields_criteria)->withSemanticCriteria($semantic_criteria)->build();
     $this->assertThatWeBuildAcontentViewWith($shared_fields_criteria, $semantic_criteria, $expectedCriteria);
 }
 public function itAssumesNoCriteriaIfThereIsNoneInTheRequest()
 {
     $no_criteria = aCrossSearchCriteria()->build();
     $this->view_builder = new MockTracker_CrossSearch_SearchViewBuilder();
     $this->view_builder->expectOnce('build', array($this->user, $this->project, $no_criteria));
     $this->view_builder->setReturnValue('build', new MockTracker_CrossSearch_SearchView());
     $this->request = new Codendi_Request(array('group_id' => '66'));
     $this->manager->setReturnValue('getProject', $this->project, array('66'));
     $controller = $this->getController();
     $controller->search($this->user);
 }
 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));
 }