/** (C) Copyright 2011-2014 Chiral Behaviors, All Rights Reserved * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.hellblazer.process; import java.io.File; import java.util.HashMap; import java.util.Map; import junit.framework.TestCase; /** * * @author hhildebrand * */ abstract public class ProcessTest extends TestCase { static File javaBin = getJavaExecutable(); private static File getJavaExecutable() { String pathSeparator = System.getProperty("file.separator"); String javaBin = System.getProperty("java.home"); if (javaBin.endsWith(pathSeparator)) { javaBin += "bin"; } else { javaBin += pathSeparator + "bin"; } javaBin += pathSeparator; String os = System.getProperty("os.name").toLowerCase(); return new File(os.indexOf("win") >= 0 ? javaBin + "java.exe" : javaBin + "java"); } protected void setupJavaClasspath(JavaProcess process) { // Force the Java classpath to be local directory. Otherwise, // in certain environments we might inherit an existing classpath, which // breaks the test. For example, this might happen when running the test // within an IDE or CI server. Map<String, String> env = new HashMap<>(); env.put("CLASSPATH", "./"); process.setEnvironment(env); } }