function testSaveAsArchive() { $result_file = new File(ModuleArchiver::MODULES_ARCHIVE_DIR . "test__category-1_2_3.ffa"); $this->assertFalse($result_file->exists(), "Il file del modulo non e' stato creato!!"); ModuleUtils::set_modules_path("/" . FRAMEWORK_CORE_PATH . "tests/modules/fakeroot2/modules/"); $this->assertTrue(AvailableModules::is_module_available("test", "category"), "Il modulo test/category non e' disponibile!!"); ModuleArchiver::save_as_archive("test", "category"); $this->assertTrue($result_file->exists(), "Il file del modulo non e' stato creato!!"); $this->assertTrue($result_file->getSize() > 0, "Il file e' vuoto!!"); $result_file->delete(); ModuleUtils::set_modules_path("/framework/modules/"); }
static function save_as_archive($category_name, $module_name) { if (!AvailableModules::is_module_available($category_name, $module_name)) { throw new IllegalStateException("Il modulo " . $category_name . "/" . $module_name . "non risulta disponibile!!"); } $d = new Dir(self::MODULES_ARCHIVE_DIR); $d->touch(); $spec = AvailableModules::get_available_module_definition($category_name, $module_name); $category_name = $spec->get_category_name(); $module_name = $spec->get_module_name(); $version = $spec->get_current_version(); $v = $version["major_version"] . "_" . $version["minor_version"] . "_" . $version["revision"]; $archive_dir = new Dir(self::MODULES_ARCHIVE_DIR); $archive_dir->touch(); $source_dir = new Dir(ModuleUtils::get_modules_path() . "/" . $category_name . "/" . $module_name . "/"); $target_file = $archive_dir->newFile($category_name . "__" . $module_name . "-" . $v . ".ffa"); $properties = array(); $properties["category_name"] = $category_name; $properties["module_name"] = $module_name; $properties["major_version"] = $version["major_version"]; $properties["minor_version"] = $version["minor_version"]; $properties["revision"] = $version["revision"]; return FFArchive::compress($target_file, $source_dir, $properties); }