public function itReturnsDeniedTrackersIfTheSelectedTrackerIsOfAKanbanHierarchyOrConcernedByKanban() { $hierarchy42_78_68 = stub('Tracker_Hierarchy')->flatten()->returns(array(42, 78, 68)); $tracker42 = aMockTracker()->withId(42)->build(); stub($tracker42)->getHierarchy()->returns($hierarchy42_78_68); $tracker78 = aMockTracker()->withId(78)->build(); stub($tracker78)->getHierarchy()->returns($hierarchy42_78_68); $tracker68 = aMockTracker()->withId(68)->build(); stub($tracker68)->getHierarchy()->returns($hierarchy42_78_68); $tracker34 = aMockTracker()->withId(34)->build(); stub($tracker34)->getHierarchy()->returns($this->hierarchy); $tracker55 = aMockTracker()->withId(55)->build(); stub($tracker55)->getHierarchy()->returns($this->hierarchy); stub($this->tracker)->getHierarchy()->returns($this->hierarchy); stub($this->tracker_factory)->getTrackersByGroupIdUserCanView()->returns(array(12 => $this->tracker, 42 => $tracker42, 78 => $tracker78, 68 => $tracker68, 34 => $tracker34, 55 => $tracker55)); stub($this->kanban_factory)->getKanbanTrackerIds()->returns(array(12, 34, 55)); stub($this->planning_factory)->getPlanningTrackerIdsByGroupId()->returns(array()); stub($this->planning_factory)->getBacklogTrackerIdsByGroupId()->returns(array(42)); stub($this->hierarchy)->flatten()->returns(array(12, 34, 55)); $this->assertEqual(array_keys($this->hierarchy_checker->getDeniedTrackersForATrackerHierarchy($this->tracker, $this->user)), array(42, 78, 68)); }