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); }