public function testRenameHomeRepositoryFailure() { $evt = new SystemEvent_PROJECT_RENAME_TestVersion($this); $evt->__construct('1', SystemEvent::TYPE_PROJECT_RENAME, '142' . SystemEvent::PARAMETER_SEPARATOR . 'FooBar', SystemEvent::PRIORITY_HIGH, SystemEvent::STATUS_RUNNING, $_SERVER['REQUEST_TIME'], $_SERVER['REQUEST_TIME'], $_SERVER['REQUEST_TIME'], ''); // The project $project = new MockProject($this); $project->setReturnValue('getUnixName', 'TestProj', array(false)); $project->setReturnValue('getUnixName', 'testproj', array(true)); $evt->setReturnValue('getProject', $project, array('142')); // SVN $backendSVN = new MockBackendSVN($this); $backendSVN->setReturnValue('repositoryExists', false); $evt->setReturnValue('getBackend', $backendSVN, array('SVN')); // CVS $backendCVS = new MockBackendCVS($this); $backendCVS->setReturnValue('repositoryExists', false); $evt->setReturnValue('getBackend', $backendCVS, array('CVS')); // System $backendSystem = new MockBackendSystem($this); $backendSystem->setReturnValue('projectHomeExists', true); $backendSystem->setReturnValue('isProjectNameAvailable', true); $backendSystem->expectOnce('renameProjectHomeDirectory', array($project, 'FooBar')); $backendSystem->setReturnValue('renameProjectHomeDirectory', false); $backendSystem->expectNever('setNeedRefreshGroupCache'); // FRS $backendSystem->setReturnValue('renameFileReleasedDirectory', true); $backendSystem->expectOnce('renameFileReleasedDirectory', array($project, 'FooBar')); // FTP $backendSystem->setReturnValue('renameAnonFtpDirectory', true); $backendSystem->expectOnce('renameAnonFtpDirectory', array($project, 'FooBar')); $evt->setReturnValue('getBackend', $backendSystem, array('System')); // DB $evt->setReturnValue('updateDB', true); // Event $em = new MockEventManager($this); $em->expectOnce('processEvent', array('SystemEvent_PROJECT_RENAME', array('project' => $project, 'new_name' => 'FooBar'))); $evt->setReturnValue('getEventManager', $em); $evt->expectOnce('addProjectHistory', array('rename_with_error', 'TestProj :: FooBar (event n°1)', $project->getId())); // There is an error, the rename in not "done" $evt->expectNever('done'); $this->assertFalse($evt->process()); // Check errors $this->assertEqual($evt->getStatus(), SystemEvent::STATUS_ERROR); $this->assertPattern('/Could not rename project home/i', $evt->getLog()); }
/** * Project delete Home fail * * @return Void */ public function testProjectDeleteProjectHomeFail() { $evt = new SystemEvent_PROJECT_DELETE_TestVersion(); $evt->__construct('1', SystemEvent::TYPE_PROJECT_DELETE, SystemEvent::OWNER_ROOT, '142', SystemEvent::PRIORITY_HIGH, SystemEvent::STATUS_RUNNING, $_SERVER['REQUEST_TIME'], $_SERVER['REQUEST_TIME'], $_SERVER['REQUEST_TIME'], ''); // The project $project = new MockProject(); $project->setReturnValue('usesCVS', true); $project->setReturnValue('usesSVN', true); $evt->setReturnValue('getProject', $project, array('142')); //Remove users from project $evt->setReturnValue('removeProjectMembers', true); $evt->setReturnValue('deleteMembershipRequestNotificationEntries', true); //Cleanup ProjectUGroup binding $evt->setReturnValue('cleanupProjectUgroupsBinding', true); //Cleanup FRS $evt->setReturnValue('cleanupProjectFRS', true); //Delete all trackers $atf = new MockArtifactTypeFactory(); $atf->setReturnValue('preDeleteAllProjectArtifactTypes', true); $evt->setReturnValue('getArtifactTypeFactory', $atf, array($project)); // System $backendSystem = new MockBackendSystem(); $backendSystem->setReturnValue('projectHomeExists', true); $backendSystem->setReturnValue('archiveProjectHome', false); $backendSystem->setReturnValue('archiveProjectFtp', true); $backendSystem->expectNever('setNeedRefreshGroupCache'); $evt->setReturnValue('getBackend', $backendSystem, array('System')); // Wiki attachments $wa = new MockWikiAttachment(); $wa->setReturnValue('deleteProjectAttachments', true); $wa->expectOnce('deleteProjectAttachments'); $evt->setReturnValue('getWikiAttachment', $wa); // CVS $backendCVS = new MockBackendCVS(); $backendCVS->setReturnValue('repositoryExists', true); $backendCVS->setReturnValue('archiveProjectCVS', true); $backendCVS->expectOnce('setCVSRootListNeedUpdate'); $evt->setReturnValue('getBackend', $backendCVS, array('CVS')); // SVN $backendSVN = new MockBackendSVN(); $backendSVN->setReturnValue('repositoryExists', true); $backendSVN->setReturnValue('archiveProjectSVN', true); $backendSVN->expectOnce('setSVNApacheConfNeedUpdate'); $evt->setReturnValue('getBackend', $backendSVN, array('SVN')); // MailingList $backendMailingList = new MockBackendMailingList(); $backendMailingList->setReturnValue('deleteProjectMailingLists', true); $backendMailingList->expectOnce('deleteProjectMailingLists'); $evt->setReturnValue('getBackend', $backendMailingList, array('MailingList')); // Aliases $backendAliases = new MockBackendAliases(); $backendAliases->expectOnce('setNeedUpdateMailAliases'); $evt->setReturnValue('getBackend', $backendAliases, array('Aliases')); $evt->expectNever('done'); $evt->expectOnce('error', array("Could not archive project home")); $em = new MockEventManager(); $evt->setReturnValue('getEventManager', $em); // Launch the event $this->assertFalse($evt->process()); }
function testPurgeFileSucceed() { $ff = new FRSFileFactoryTestPurgeOneFile($this); // Create temp file $filepath = dirname(__FILE__) . '/_fixtures/DELETED/prj/p1_r1/foobar.xls.12'; mkdir(dirname($filepath), 0750, true); touch($filepath); $this->assertTrue(is_file($filepath)); $file = new MockFRSFile($this); $file->setReturnValue('getFileID', 12); $file->setReturnValue('getFileName', 'p1_r1/foobar.xls'); $file->setReturnValue('getFileLocation', $GLOBALS['ftp_frs_dir_prefix'] . '/prj/p1_r1/foobar.xls'); $dao = new MockFRSFileDao($this); $dao->expectOnce('setPurgeDate', array(12, '*')); $dao->setReturnValue('setPurgeDate', true); $ff->setReturnValue('_getFRSFileDao', $dao); $backend = new MockBackendSystem(); $backend->expectNever('log', array('File p1_r1/foobar.xls(12) not purged, Set purge date in DB fail', 'error')); $this->assertTrue($ff->purgeFile($file, $backend)); $this->assertFalse(is_file($filepath), "File should be deleted"); // Cleanup rmdir($GLOBALS['ftp_frs_dir_prefix'] . '/DELETED/prj/p1_r1'); rmdir($GLOBALS['ftp_frs_dir_prefix'] . '/DELETED/prj'); }
function testIsNameAvailableCVSFailure() { $r = new Rule_ProjectNameTestVersion(); $backendSVN = new MockBackendSVN($this); $backendSVN->setReturnValue('isNameAvailable', true, array('foobar')); $r->setReturnValue('_getBackend', $backendSVN, array('SVN')); $backendCVS = new MockBackendCVS($this); $backendCVS->setReturnValue('isNameAvailable', false, array('foobar')); $r->setReturnValue('_getBackend', $backendCVS, array('CVS')); $backendSystem = new MockBackendSystem($this); $backendSystem->expectNever('isProjectNameAvailable', array('foobar')); $this->assertFalse($r->isNameAvailable('foobar')); }