public function edit() { $possible_children = $this->factory->getPossibleChildren($this->tracker); $hierarchy = $this->factory->getHierarchy($this->tracker->getUnhierarchizedTracker()); $presenter = new Tracker_Hierarchy_Presenter($this->tracker, $possible_children, $hierarchy); $this->render('admin-hierarchy', $presenter); }
public function testGetPossibleChildren() { $dao = new MockTracker_Hierarchy_Dao(); $dao->expectOnce('searchAncestorIds', array(1)); $dao->setReturnValue('searchAncestorIds', array(4)); $project_id = 100; $project = new MockProject(); $project->setReturnValue('getId', $project_id); $tracker = aTracker()->withId(1)->withProject($project)->build(); $hierarchical_tracker = new Tracker_Hierarchy_HierarchicalTracker($tracker, array()); $possible_child_1 = aTracker()->withId(2)->build(); $possible_child_2 = aTracker()->withId(3)->build(); $ancestor = aTracker()->withId(4)->build(); $project_trackers = array(1 => $tracker, 2 => $possible_child_1, 3 => $possible_child_2, 4 => $ancestor); $tracker_factory = new MockTrackerFactory(); $tracker_factory->setReturnValue('getTrackersByGroupId', $project_trackers, array($project_id)); $factory = new Tracker_Hierarchy_HierarchicalTrackerFactory($tracker_factory, $dao); $expected_possible_children = array($possible_child_1, $possible_child_2); $actual_possible_children = $factory->getPossibleChildren($hierarchical_tracker); $actual_possible_children = $this->assertChildEquals($actual_possible_children, $possible_child_1); $actual_possible_children = $this->assertChildEquals($actual_possible_children, $possible_child_2); $this->assertEqual(count($actual_possible_children), 0); }
private function getPossibleChildren(array $trackers_not_in_hierarchy) { $possible_children = $this->factory->getPossibleChildren($this->tracker); $this->removeTrackersThatCannotBeUsedInHierarchy($possible_children, $trackers_not_in_hierarchy); return $possible_children; }