Example #1
0
 public function testImportProjectCreatesAProject()
 {
     $project_manager = ProjectManager::instance();
     $user_manager = UserManager::instance();
     $importer = new ProjectXMLImporter(EventManager::instance(), $project_manager, new XML_RNGValidator(), new UGroupManager(), new XMLImportHelper($user_manager), new Log_ConsoleLogger());
     $system_event_runner = mock('ProjectImportTest_SystemEventRunner');
     $archive = new Tuleap\Project\XML\Import\DirectoryArchive(__DIR__ . '/_fixtures/fake_project');
     $importer->importNewFromArchive($archive, $system_event_runner);
     // Reset Project Manager (and its cache)
     ProjectManager::clearInstance();
     $project_manager = ProjectManager::instance();
     // Check the project was created
     $project = $project_manager->getProjectByUnixName('toto123');
     $this->assertEqual($project->getPublicName(), 'Toto 123');
     $this->assertEqual($project->getDescription(), '123 Soleil');
     $this->assertEqual($project->usesSVN(), true);
     $this->assertEqual($project->usesCVS(), false);
     $system_event_runner->expectCallCount('runSystemEvents', 1);
     $system_event_runner->expectCallCount('checkPermissions', 1);
 }
Example #2
0
    if (!$user->isSuperUser() && !$user->isAdmin($project_id) || !$user->isActive()) {
        throw new RuntimeException($GLOBALS['Language']->getText('project_import', 'invalid_user', array($username)));
    }
    if (is_dir($archive_path)) {
        $archive = new Import\DirectoryArchive($archive_path);
    } else {
        $archive = new Import\ZipArchive($archive_path, ForgeConfig::get('tmp_dir'));
    }
    $archive->extractFiles();
    $collection_from_archive = $builder->buildFromArchive($archive);
    $users_collection = $transformer->transform($collection_from_archive, $mapping_path);
    $users_collection->process($user_manager, $broker_log);
    $user_finder = new User\XML\Import\Mapping($user_manager, $users_collection, $broker_log);
    $xml_importer = new ProjectXMLImporter(EventManager::instance(), ProjectManager::instance(), $xml_validator, new UGroupManager(), $user_finder, $broker_log);
    if (empty($project_id)) {
        $factory = new SystemEventProcessor_Factory($logger, SystemEventManager::instance(), EventManager::instance());
        $system_event_runner = new Tuleap\Project\SystemEventRunner($factory);
        $xml_importer->importNewFromArchive($archive, $system_event_runner, $project_name_override);
    } else {
        $xml_importer->importFromArchive($project_id, $archive);
    }
    $archive->cleanUp();
    exit(0);
} catch (XML_ParseException $exception) {
    foreach ($exception->getErrors() as $parse_error) {
        $broker_log->error('XML: ' . $parse_error . ' line:' . $exception->getSourceXMLForError($parse_error));
    }
} catch (Exception $exception) {
    $broker_log->error(get_class($exception) . ': ' . $exception->getMessage() . ' in ' . $exception->getFile() . ' L' . $exception->getLine());
}
exit(1);