public function testExecutes_ForkCrossProject_ActionWithForkRepositoriesView()
 {
     $groupId = 101;
     $toProjectId = 100;
     $toProject = new MockProject();
     $toProject->setReturnValue('getId', $toProjectId);
     $repo = new GitRepository();
     $repos = array($repo);
     $repo_ids = array(200);
     $user = new MockUser();
     $user->setReturnValue('isMember', true);
     $usermanager = new MockUserManager();
     $usermanager->setReturnValue('getCurrentUser', $user);
     $projectManager = new MockProjectManager();
     $projectManager->setReturnValue('getProject', $toProject, array($toProjectId));
     $repositoryFactory = new MockGitRepositoryFactory();
     $repositoryFactory->setReturnValue('getRepositoryById', $repo, array($repo_ids[0]));
     $request = new Codendi_Request(array('choose_destination' => 'project', 'to_project' => $toProjectId, 'repos' => $repo_ids));
     $git = TestHelper::getPartialMock('Git', array('definePermittedActions', '_informAboutPendingEvents', 'addAction', 'addView', 'checkSynchronizerToken'));
     $git->setGroupId($groupId);
     $git->setRequest($request);
     $git->setUserManager($usermanager);
     $git->setProjectManager($projectManager);
     $git->setFactory($repositoryFactory);
     $git->expectCallCount('addAction', 2);
     $git->expectAt(0, 'addAction', array('fork', array($repos, $toProject, '', GitRepository::REPO_SCOPE_PROJECT, $user, $GLOBALS['HTML'], '/plugins/git/?group_id=100')));
     $git->expectAt(1, 'addAction', array('getProjectRepositoryList', array($groupId)));
     $git->expectOnce('addView', array('forkRepositories'));
     $git->_dispatchActionAndView('do_fork_repositories', null, null, $user);
 }
 public function testExecutes_ForkRepositories_ActionWithAListOfRepos()
 {
     $groupId = 101;
     $repo = new GitRepository();
     $repos = array($repo);
     $user = new User();
     $user->setId(42);
     $user->setUserName('Ben');
     $path = userRepoPath('Ben', 'toto');
     $project = new MockProject();
     $projectManager = new MockProjectManager();
     $projectManager->setReturnValue('getProject', $project, array($groupId));
     $factory = new MockGitRepositoryFactory();
     $factory->setReturnValue('getRepositoryById', $repo);
     $git = TestHelper::getPartialMock('Git', array('definePermittedActions', '_informAboutPendingEvents', 'addAction', 'addView', 'checkSynchronizerToken'));
     $git->setGroupId($groupId);
     $git->setProjectManager($projectManager);
     $git->expectAt(0, 'addAction', array('getProjectRepositoryList', array($groupId)));
     $git->expectAt(1, 'addAction', array('fork', array($repos, $project, $path, GitRepository::REPO_SCOPE_INDIVIDUAL, $user, $GLOBALS['HTML'], '/plugins/git/?group_id=101&user=42')));
     $request = new Codendi_Request(array('repos' => array('1001'), 'path' => 'toto'));
     $git->setFactory($factory);
     $git->_doDispatchForkRepositories($request, $user);
 }