2
0
Fork 0
mirror of https://github.com/ethauvin/bld.git synced 2025-04-26 08:37:11 -07:00

Cleaned up and improved tests

This commit is contained in:
Erik C. Thauvin 2024-08-02 02:54:46 -07:00
parent d69956cf91
commit 0ad964ea4d
Signed by: erik
GPG key ID: 776702A6A2DA330E
10 changed files with 685 additions and 304 deletions

View file

@ -8,8 +8,10 @@ package rife.bld.operations;
import org.junit.jupiter.api.Test;
import rife.bld.operations.exceptions.ExitStatusException;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertThrows;
import java.util.HashMap;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
public class TestJlinkOperation {
@Test
@ -18,9 +20,67 @@ public class TestJlinkOperation {
assertThrows(ExitStatusException.class, jlink::execute);
}
@Test
void testDisablePlugin() {
var jlink = new JlinkOperation()
.disablePlugin("vm")
.disablePlugin("system-modules")
.listPlugins();
assertDoesNotThrow(jlink::execute);
assertTrue(jlink.toolArgs().containsAll(List.of("vm", "system-modules")));
}
@Test
void testOptions() {
var args = new HashMap<String, String>();
args.put("--add-modules", "module-1,module-2");
args.put("--bind-services", null);
args.put("--compress", "zip-6");
args.put("--endian", "big");
args.put("--ignore-signing-information", null);
args.put("--launcher", "name=module/mainclass");
args.put("--limit-modules", "module-1,module-2");
args.put("--module-path", "module-path");
args.put("--no-header-files", null);
args.put("--no-man-pages", null);
args.put("--output", "output");
args.put("--save-opts", "save-opts");
args.put("--strip-debug", null);
args.put("--suggest-providers", "provider-1,provider-2");
args.put("--verbose", null);
var options = new JlinkOptions()
.addModules(args.get("--add-modules").split(","))
.bindServices(true)
.compress(ZipCompression.ZIP_6)
.endian(JlinkOptions.Endian.BIG)
.ignoreSigningInformation(true)
.launcher("name", "module", "mainclass")
.limitModule(args.get("--limit-modules").split(","))
.modulePath(args.get("--module-path"))
.noHeaderFiles(true)
.noManPages(true)
.output(args.get("--output"))
.saveOpts(args.get("--save-opts"))
.stripDebug(true)
.suggestProviders(args.get("--suggest-providers").split(","))
.verbose(true);
assertEquals(options.size(), args.size(), "Wrong number of arguments");
for (var arg : args.entrySet()) {
assertTrue(options.containsKey(arg.getKey()), arg.getValue() + " not found");
assertEquals(arg.getValue(), options.get(arg.getKey()), arg.getKey());
}
options.launcher("name-2", "module-2");
assertEquals("name-2=module-2", options.get("--launcher"), "incorrect launcher");
}
@Test
void testVersion() {
var jlink = new JlinkOperation().toolArg("--version");
var jlink = new JlinkOperation().addArgs("--version");
assertDoesNotThrow(jlink::execute);
}
}

View file

@ -8,8 +8,11 @@ package rife.bld.operations;
import org.junit.jupiter.api.Test;
import rife.bld.operations.exceptions.ExitStatusException;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertThrows;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.HashMap;
import static org.junit.jupiter.api.Assertions.*;
public class TestJmodOperation {
@Test
@ -18,9 +21,67 @@ public class TestJmodOperation {
assertThrows(ExitStatusException.class, jmod::execute);
}
@Test
void testOptions() {
var args = new HashMap<String, String>();
args.put("--class-path", "classpath");
args.put("--cmds", "cmds");
args.put("--compress", "zip-5");
args.put("--config", "config");
args.put("--date", "1997-08-29T09:14:00Z");
args.put("--dir", "dir");
args.put("--do-not-resolve-by-default", null);
args.put("--dry-run", null);
args.put("--exclude", "glob:glob,regex:regex");
args.put("--hash-modules", "regex");
args.put("--header-files", "header-files");
args.put("--legal-notices", "legal-notices");
args.put("--libs", "libs");
args.put("--main-class", "main-class");
args.put("--man-pages", "man-pages");
args.put("--module-path", "module-path");
args.put("--module-version", "module-version");
args.put("--target-platform", "target-platform");
args.put("--warn-if-resolved", "deprecated");
args.put("@filename", null);
var options = new JmodOptions()
.classpath(args.get("--class-path"))
.cmds(args.get("--cmds"))
.compress(ZipCompression.ZIP_5)
.config(args.get("--config"))
.date(ZonedDateTime.of(1997, 8, 29, 2, 14, 0, 0, ZoneId.of("America/Los_Angeles")))
.dir(args.get("--dir"))
.doNotResolveByDefault(true)
.dryRun(true)
.exclude(new JmodOptions.FilePattern(JmodOptions.FilePatternType.GLOB, "glob"),
new JmodOptions.FilePattern(JmodOptions.FilePatternType.REGEX, "regex"))
.filename("filename")
.hashModules(args.get("--hash-modules"))
.headerFiles(args.get("--header-files"))
.legalNotices(args.get("--legal-notices"))
.libs(args.get("--libs"))
.mainClass(args.get("--main-class"))
.manPages(args.get("--man-pages"))
.modulePath(args.get("--module-path"))
.moduleVersion(args.get("--module-version"))
.targetPlatform(args.get("--target-platform"))
.warnIfResolved(JmodOptions.ResolvedReason.DEPRECATED);
assertEquals(options.size(), args.size(), "Wrong number of arguments");
for (var arg : args.entrySet()) {
assertTrue(options.containsKey(arg.getKey()), arg.getValue() + " not found");
assertEquals(arg.getValue(), options.get(arg.getKey()), arg.getKey());
}
}
@Test
void testVersion() {
var jmod = new JmodOperation().operationMode(JmodOperation.OperationMode.DESCRIBE).toolArg("--version");
var jmod = new JmodOperation()
.operationMode(JmodOperation.OperationMode.DESCRIBE)
.jmodFile("foo")
.addArgs("--version");
assertDoesNotThrow(jmod::execute);
}
}

View file

@ -10,6 +10,7 @@ import rife.bld.operations.exceptions.ExitStatusException;
import rife.tools.FileUtils;
import java.nio.file.Files;
import java.util.HashMap;
import static org.junit.jupiter.api.Assertions.*;
@ -18,6 +19,7 @@ public class TestJpackageOperation {
void testCreatePackage() throws Exception {
var tmpdir = Files.createTempDirectory("bld-jpackage-test").toFile();
tmpdir.deleteOnExit();
var options = new JpackageOptions()
.input("lib/bld")
.name("bld")
@ -49,9 +51,146 @@ public class TestJpackageOperation {
assertThrows(ExitStatusException.class, jpackage::execute);
}
@Test
void testOptions() {
var args = new HashMap<String, String>();
args.put("--about-url", "about-url");
args.put("--add-launcher", "name=path");
args.put("--add-modules", "modules-1,modules-2");
args.put("--app-content", "content-1,content-2");
args.put("--app-image", "app-image");
args.put("--app-version", "app-version");
args.put("--arguments", "argument1 argument2");
args.put("--copyright", "copyright");
args.put("--description", "description");
args.put("--dest", "dest");
args.put("--file-associations", "file-associations");
args.put("--icon", "icon");
args.put("--input", "input");
args.put("--install-dir", "install-dir");
args.put("--java-options", "java-options");
args.put("--jlink-options", "--strip-debug --add-modules module-1,module-2");
args.put("--launcher-as-service", null);
args.put("--license-file", "license-file");
args.put("--linux-app-category", "linux-app-category");
args.put("--linux-app-release", "linux-app-release");
args.put("--linux-deb-maintainer", "linux-deb-maintainer");
args.put("--linux-menu-group", "linux-menu-group");
args.put("--linux-package-deps", null);
args.put("--linux-package-name", "linux-package-name");
args.put("--linux-rpm-license-type", "linux-rpm-license-type");
args.put("--linux-shortcut", null);
args.put("--mac-app-category", "mac-app-category");
args.put("--mac-app-image-sign-identity", "mac-app-image-sign-identity");
args.put("--mac-app-store", null);
args.put("--mac-dmg-content", "mac-dmg-content");
args.put("--mac-entitlements", "mac-entitlements");
args.put("--mac-installer-sign-identity", "mac-installer-sign-identity");
args.put("--mac-package-identifier", "mac-package-identifier");
args.put("--mac-package-name", "mac-package-name");
args.put("--mac-package-signing-prefix", "mac-package-signing-prefix");
args.put("--mac-sign", null);
args.put("--mac-signing-key-user-name", "mac-signing-key-user-name");
args.put("--mac-signing-keychain", "mac-signing-keychain");
args.put("--main-class", "main-class");
args.put("--main-jar", "main-jar");
args.put("--module", "module");
args.put("--module-path", "module-path-1,module-path-2");
args.put("--name", "name");
args.put("--resource-dir", "resource-dir");
args.put("--runtime-image", "runtime-image");
args.put("--strip-debug", null);
args.put("--temp", "temp");
args.put("--type", "exe");
args.put("--vendor", "vendor");
args.put("--verbose", null);
args.put("--win-console", null);
args.put("--win-dir-chooser", null);
args.put("--win-help-url", "win-help-url");
args.put("--win-menu", null);
args.put("--win-menu-group", "win-menu-group");
args.put("--win-per-user-install", null);
args.put("--win-shortcut", null);
args.put("--win-shortcut-prompt", null);
args.put("--win-update-url", "win-update-url");
args.put("--win-upgrade-uuid", "win-upgrade-uuid");
args.put("@filename", null);
var options = new JpackageOptions()
.aboutUrl(args.get("--about-url"))
.addLauncher(new JpackageOptions.Launcher("name", "path"))
.addModules(args.get("--add-modules").split(","))
.appContent(args.get("--app-content").split(","))
.appImage(args.get("--app-image"))
.appVersion(args.get("--app-version"))
.arguments(args.get("--arguments").split(" "))
.copyright(args.get("--copyright"))
.description(args.get("--description"))
.dest(args.get("--dest"))
.fileAssociations(args.get("--file-associations").split(","))
.icon(args.get("--icon"))
.input(args.get("--input"))
.installDir(args.get("--install-dir"))
.javaOptions(args.get("--java-options").split(","))
.jlinkOptions(new JlinkOptions().stripDebug(true).addModules("module-1", "module-2"))
.launcherAsService(true)
.licenseFile(args.get("--license-file"))
.linuxAppCategory(args.get("--linux-app-category"))
.linuxAppRelease(args.get("--linux-app-release"))
.linuxDebMaintainer(args.get("--linux-deb-maintainer"))
.linuxMenuGroup(args.get("--linux-menu-group"))
.linuxPackageDeps(true)
.linuxPackageName(args.get("--linux-package-name"))
.linuxRpmLicenseType(args.get("--linux-rpm-license-type"))
.linuxShortcut(true)
.macAppCategory(args.get("--mac-app-category"))
.macAppImageSignIdentity(args.get("--mac-app-image-sign-identity"))
.macAppStore(true)
.macDmgContent(args.get("--mac-dmg-content"))
.macEntitlements(args.get("--mac-entitlements"))
.macInstallerSignIdentity(args.get("--mac-installer-sign-identity"))
.macPackageIdentifier(args.get("--mac-package-identifier"))
.macPackageName(args.get("--mac-package-name"))
.macPackageSigningPrefix(args.get("--mac-package-signing-prefix"))
.macSign(true)
.macSigningKeyUserName(args.get("--mac-signing-key-user-name"))
.macSigningKeychain(args.get("--mac-signing-keychain"))
.mainClass(args.get("--main-class"))
.mainJar(args.get("--main-jar"))
.module(args.get("--module"))
.modulePath(args.get("--module-path").split(","))
.name(args.get("--name"))
.resourceDir(args.get("--resource-dir"))
.runtimeImage(args.get("--runtime-image"))
.stripDebug(true)
.temp(args.get("--temp"))
.type(JpackageOptions.PackageType.EXE)
.vendor(args.get("--vendor"))
.verbose(true)
.winConsole(true)
.winDirChooser(true)
.winHelpUrl(args.get("--win-help-url"))
.winMenu(true)
.winMenuGroup(args.get("--win-menu-group"))
.winPerUserInstall(true)
.winShortcut(true)
.winShortcutPrompt(true)
.winUpdateUrl(args.get("--win-update-url"))
.winUpgradeUuid(args.get("--win-upgrade-uuid"))
.filename("filename");
assertEquals(options.size(), args.size(), "Wrong number of arguments");
for (var arg : args.entrySet()) {
assertTrue(options.containsKey(arg.getKey()), arg.getValue() + " not found");
assertEquals(arg.getValue(), options.get(arg.getKey()), arg.getKey());
}
}
@Test
void testVersion() {
var jpackage = new JpackageOperation().toolArg("--version");
var jpackage = new JpackageOperation().addArgs("--version");
assertDoesNotThrow(jpackage::execute);
}
}