private function aMockTrackerFactoryWith($project_id, $project_trackers) { $tracker_factory = new MockTrackerFactory(); $tracker_factory->expectOnce('getTrackersByGroupId', array($project_id)); $tracker_factory->setReturnValue('getTrackersByGroupId', $project_trackers); return $tracker_factory; }
/** * Given I have 3 plugin_tracker_artifact references in the template project * - bug * - issue * - task * And 'bug' correspond to 'Bug' tracker * And 'task' correspond to 'Task' tracker * And 'issue' was created by hand by the admin * And 'Bug' tracker is instanciated for new project * And 'Task' tracker is not instanciated for new project * * Then 'issue' reference is created * And 'bug' reference is not created (it's up to tracker creation to create the reference) * And 'task' reference is not created (it's up to tracker creation to create the reference) * */ public function testDuplicateCopyReferences() { $source_project_id = 100; $destinatnion_project_id = 120; $u_group_mapping = array(); $tm = TestHelper::getPartialMock('TrackerManager', array('getTrackerFactory', 'getReferenceManager')); $tf = new MockTrackerFactory(); $tf->expectOnce('duplicate'); $tm->setReturnValue('getTrackerFactory', $tf); $r1 = new Reference(101, 'bug', 'desc', '/plugins/tracker/?aid=$1&group_id=$group_id', 'P', 'plugin_tracker', 'plugin_tracker_artifact', 1, 100); $r2 = new Reference(102, 'issue', 'desc', '/plugins/tracker/?aid=$1&group_id=$group_id', 'P', 'plugin_tracker', 'plugin_tracker_artifact', 1, 100); $r3 = new Reference(103, 'task', 'desc', '/plugins/tracker/?aid=$1&group_id=$group_id', 'P', 'plugin_tracker', 'plugin_tracker_artifact', 1, 100); $rm = new MockReferenceManager(); $rm->expectOnce('getReferencesByGroupId', array($source_project_id)); $rm->setReturnValue('getReferencesByGroupId', array($r1, $r2, $r3)); $tm->setReturnValue('getReferenceManager', $rm); $t1 = new MockTracker(); $t1->setReturnValue('getItemName', 'bug'); $t1->setReturnValue('mustBeInstantiatedForNewProjects', true); $t2 = new MockTracker(); $t2->setReturnValue('getItemName', 'task'); $t2->setReturnValue('mustBeInstantiatedForNewProjects', false); $tf->setReturnValue('getTrackersByGroupId', array($t1, $t2), $source_project_id); $rm->expectOnce('createReference', array($r2)); $tm->duplicate($source_project_id, $destinatnion_project_id, $u_group_mapping); }