blob: c8df847eeb3c07ccd82c17d6836e1d77b2b5a96d [file] [log] [blame]
package org.eclipse.dltk.core.tests.launching;
import java.util.List;
import junit.framework.Test;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IPath;
import org.eclipse.dltk.core.IScriptProject;
import org.eclipse.dltk.core.environment.EnvironmentManager;
import org.eclipse.dltk.core.environment.IEnvironment;
import org.eclipse.dltk.core.tests.model.AbstractModelTests;
import org.eclipse.dltk.launching.InterpreterConfig;
public class InterpreterConfigTests extends AbstractModelTests {
private static final String PROJECT_NAME = "launching";
private IScriptProject scriptProject;
public InterpreterConfigTests(String name) {
super("org.eclipse.dltk.core.tests", name);
}
// Configuration
@Override
public void setUpSuite() throws Exception {
super.setUpSuite();
scriptProject = setUpScriptProject(PROJECT_NAME);
}
@Override
public void tearDownSuite() throws Exception {
deleteProject(PROJECT_NAME);
super.tearDownSuite();
}
public static Test suite() {
return new Suite(InterpreterConfigTests.class);
}
protected InterpreterConfig createInterperterConfig() {
IProject project = scriptProject.getProject();
IResource member = project.findMember("src/script.xxx");
IPath scriptPath = member.getLocation();
IEnvironment env = EnvironmentManager.getEnvironment(scriptProject);
return new InterpreterConfig(env, scriptPath);
}
public void testInterpreterConfig() {
IProject project = scriptProject.getProject();
IResource member = project.findMember("src/script.xxx");
IPath scriptPath = member.getLocation();
IEnvironment env = EnvironmentManager.getEnvironment(scriptProject);
InterpreterConfig config = new InterpreterConfig(env, scriptPath);
// Creation
assertNotNull(config.getScriptFilePath());
assertNotNull(config.getWorkingDirectoryPath());
assertEquals(scriptPath.toOSString(), config.getScriptFilePath().toOSString());
assertEquals(scriptPath.removeLastSegments(1).toOSString(), config
.getWorkingDirectoryPath().toOSString());
// Null as script file
try {
config.setScriptFile(null);
fail("Should raise an IllegalArgumentException");
} catch (IllegalArgumentException e) {
}
// try {
// config.setScriptFile((File) null);
// fail("Should raise an IllegalArgumentException");
// } catch (IllegalArgumentException e) {
//
// }
// Null as working directory
try {
config.setWorkingDirectory(null);
fail("Should raise an IllegalArgumentException");
} catch (IllegalArgumentException e) {
}
// try {
// config.setWorkingDirectory((File) null);
// fail("Should raise an IllegalArgumentException");
// } catch (IllegalArgumentException e) {
//
// }
}
public void testInterpreterConfigEnvArgs() {
InterpreterConfig config = createInterperterConfig();
// Environment
assertEquals(0, config.getEnvVars().size());
// Not existent variable
assertFalse(config.hasEnvVar("DIMAN"));
assertNull(config.getEnvVar("KDS"));
// Add variable
config.addEnvVar("KDS", "DIMAN");
assertTrue(config.hasEnvVar("KDS"));
assertNotNull(config.getEnvVar("KDS"));
assertEquals("DIMAN", config.getEnvVar("KDS"));
// Remove
config.removeEnvVar("KDS");
assertFalse(config.hasEnvVar("DIMAN"));
assertNull(config.getEnvVar("KDS"));
assertEquals(0, config.getEnvVars().size());
// Adding null name
try {
config.addEnvVar("KDS", null);
fail("Should raise an IllegalArgumentException");
} catch (IllegalArgumentException e) {
}
// Adding null value
try {
config.addEnvVar(null, "DIMAN");
fail("Should raise an IllegalArgumentException");
} catch (IllegalArgumentException e) {
}
}
public void testInterperterConfigScriptArgs() {
InterpreterConfig config = createInterperterConfig();
// Script arguments
assertEquals(0, config.getScriptArgs().size());
assertFalse(config.hasScriptArg("-gXXX"));
// Adding first argument
config.addScriptArg("-gXXX");
assertTrue(config.hasScriptArg("-gXXX"));
// Adding second argument
config.addScriptArg("-pXXX");
assertTrue(config.hasScriptArg("-pXXX"));
final List<?> args = config.getScriptArgs();
assertEquals(2, args.size());
assertEquals("-gXXX", args.get(0));
assertEquals("-pXXX", args.get(1));
// Adding null argument
try {
config.addScriptArg(null);
fail("Should raise an IllegalArgumentException");
} catch (IllegalArgumentException e) {
}
}
public void testInterperterConfigInterpreterArgs() {
InterpreterConfig config = createInterperterConfig();
// Script arguments
assertEquals(0, config.getInterpreterArgs().size());
assertFalse(config.hasInterpreterArg("arg1"));
// Adding first argument
config.addInterpreterArg("arg1");
assertTrue(config.hasInterpreterArg("arg1"));
// Adding second argument
config.addInterpreterArg("arg2");
assertTrue(config.hasInterpreterArg("arg2"));
final List<?> args = config.getInterpreterArgs();
assertEquals(2, args.size());
assertEquals("arg1", args.get(0));
assertEquals("arg2", args.get(1));
// Adding null argument
try {
config.addInterpreterArg(null);
fail("Should raise an IllegalArgumentException");
} catch (IllegalArgumentException e) {
}
}
}