public function testFactoryShouldCallTheDatabaseToBuildHierarchy() { $dao = new MockTracker_Hierarchy_Dao(); $dao->setReturnValue('searchTrackerHierarchy', array()); $dao->expectOnce('searchTrackerHierarchy'); $factory = $this->GivenAHierarchyFactory($dao); $factory->getHierarchy(array(111)); }
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); }