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