1 /* 2 * Copyright (c) 2015, 2016 Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 */ 5 6 package com.oracle.appbundlers.tests.functionality; 7 8 import static com.oracle.appbundlers.utils.BundlerUtils.EXE; 9 import static com.oracle.appbundlers.utils.BundlerUtils.MSI; 10 import static com.oracle.appbundlers.utils.Config.CONFIG_INSTANCE; 11 import static com.oracle.appbundlers.utils.Config.LICENSE_FILE_NAME; 12 import static java.util.stream.Collectors.toSet; 13 14 import java.io.IOException; 15 import java.nio.file.Files; 16 import java.nio.file.Path; 17 import java.util.HashMap; 18 import java.util.Map; 19 20 import com.oracle.appbundlers.tests.functionality.functionalinterface.AdditionalParams; 21 import com.oracle.appbundlers.tests.functionality.functionalinterface.BasicParams; 22 import com.oracle.appbundlers.utils.AppWrapper; 23 import com.oracle.appbundlers.utils.BundlerUtils; 24 import com.oracle.appbundlers.utils.ExtensionType; 25 import com.oracle.tools.packager.RelativeFileSet; 26 import com.oracle.tools.packager.StandardBundlerParam; 27 28 /** 29 * @author Dmitriy Ermashov <dmitriy.ermashov@oracle.com> 30 */ 31 32 /** 33 * Tests {@code installdirChooser} option. 34 */ 35 public class InstallDirTest extends TestBase { 36 private String licenseFileContent = null; 37 private Path licenseFileSrc; 38 private Path licenseFile; 39 40 public void initializeVars() throws IOException { 41 licenseFileSrc = CONFIG_INSTANCE.getResourceFilePath(LICENSE_FILE_NAME); 42 licenseFile = currentParameter.getApp().getJarDir() 43 .resolve(LICENSE_FILE_NAME); 44 } 45 46 @Override 47 protected BundlerUtils[] getBundlerUtils() { 48 return new BundlerUtils[] { EXE, MSI }; 49 } 50 51 public BasicParams getBasicParams() { 52 return (AppWrapper app) -> { 53 54 Map<String, Object> basicParams = new HashMap<String, Object>(); 55 basicParams 56 .put(APP_RESOURCES, 57 new RelativeFileSet(app.getJarDir().toFile(), 58 app.getJarFilesList().stream() 59 .map(Path::toFile) 60 .collect(toSet()))); 61 String mainClass = StandardBundlerParam.MAIN_CLASS 62 .fetchFrom(basicParams); 63 basicParams.put(APPLICATION_CLASS, mainClass); 64 65 RelativeFileSet appResources = (RelativeFileSet) basicParams 66 .get(APP_RESOURCES); 67 appResources.getIncludedFiles().add(LICENSE_FILE_NAME); 68 return basicParams; 69 }; 70 } 71 72 public AdditionalParams getAdditionalParams() { 73 return () -> { 74 Map<String, Object> additionalParams = new HashMap<>(); 75 additionalParams.put(INSTALLDIR_CHOOSER, "true"); 76 additionalParams.put(LICENSE_FILE, LICENSE_FILE_NAME); 77 return additionalParams; 78 }; 79 } 80 81 @Override 82 protected void prepareTestEnvironment() throws Exception { 83 super.prepareTestEnvironment(); 84 initializeVars(); 85 Files.deleteIfExists(licenseFile); 86 Files.copy(licenseFileSrc, licenseFile); 87 licenseFileContent = new String(Files.readAllBytes(licenseFile), 88 "UTF-8"); 89 } 90 91 @Override 92 public void overrideParameters(ExtensionType intermediate) 93 throws IOException { 94 this.currentParameter.setAdditionalParams(getAdditionalParams()); 95 this.currentParameter.setBasicParams(getBasicParams()); 96 } 97 }