package hudson.plugins.sshslaves;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.StringWriter;
import junit.framework.TestCase;
import org.junit.Assert;
import org.junit.Test;
public class SSHLauncherTest extends TestCase {
@Test
public void testCheckJavaVersionOpenJDK7NetBSD() throws Exception {
Assert.assertTrue("OpenJDK7 on NetBSD should be supported", checkSupported("openjdk-7-netbsd.version"));
}
@Test
public void testCheckJavaVersionOpenJDK6Linux() throws Exception {
Assert.assertTrue("OpenJDK6 on Linux should be supported", checkSupported("openjdk-6-linux.version"));
}
@Test
public void testCheckJavaVersionSun6Linux() throws Exception {
Assert.assertTrue("Sun 6 on Linux should be supported", checkSupported("sun-java-1.6-linux.version"));
}
@Test
public void testCheckJavaVersionSun6Mac() throws Exception {
Assert.assertTrue("Sun 6 on Mac should be supported", checkSupported("sun-java-1.6-mac.version"));
}
@Test
public void testCheckJavaVersionSun4Linux() throws Exception {
Assert.assertFalse("Sun 1.4 on Linux should NOT be supported", checkSupported("sun-java-1.4-linux.version"));
}
/**
* Returns true if the version is supported.
*
* @param testVersionOutput
* the resource to find relative to this class that contains the
* output of "java -version"
* @return
*/
private static boolean checkSupported(final String testVersionOutput) throws IOException {
final String javaCommand = "testing-java";
final InputStream versionStream = SSHLauncherTest.class
.getResourceAsStream(testVersionOutput);
final BufferedReader r = new BufferedReader(new InputStreamReader(
versionStream));
final StringWriter output = new StringWriter();
final String result = new SSHLauncher(null,0,null,null,null,null).checkJavaVersion(System.out,
javaCommand, r, output);
return null != result;
}
}