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