blob: ccd1d899f3d82ce9d009e8fe4f1195616b95d5c3 [file] [log] [blame]
package org.eclipse.dltk.core.tests.launching;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.dltk.core.tests.model.SuiteOfTestCases;
import org.eclipse.dltk.internal.launching.EnvironmentResolver;
import org.eclipse.dltk.launching.EnvironmentVariable;
import junit.framework.Test;
public class EnvironmentResolverTests extends SuiteOfTestCases {
public EnvironmentResolverTests(String name) {
super(name);
}
public void testEnvironmentResolve001() {
Map<String, String> env = new HashMap<>();
EnvironmentVariable[] vars = new EnvironmentVariable[] { mk("A", "a") };
EnvironmentVariable[] resolve = EnvironmentResolver.resolve(env, vars);
assertNotNull(resolve);
test(resolve, "A", "a");
}
public void testEnvironmentResolve002() {
Map<String, String> env = new HashMap<>();
EnvironmentVariable[] vars = new EnvironmentVariable[] { mk("A", "a"),
mk("B", "a$Ac") };
EnvironmentVariable[] resolve = EnvironmentResolver.resolve(env, vars,
true);
assertNotNull(resolve);
test(resolve, "A", "a");
test(resolve, "B", "a$Ac");
}
public void testEnvironmentResolve002a() {
Map<String, String> env = new HashMap<>();
EnvironmentVariable[] vars = new EnvironmentVariable[] { mk("A", "a"),
mk("B", "a$A:c") };
EnvironmentVariable[] resolve = EnvironmentResolver.resolve(env, vars);
assertNotNull(resolve);
test(resolve, "A", "a");
test(resolve, "B", "aa:c");
}
public void testEnvironmentResolve003() {
Map<String, String> env = new HashMap<>();
EnvironmentVariable[] vars = new EnvironmentVariable[] {
mk("AUTOTEST", "/Develop/cisco/ats5.0.0"),
mk("ATS_EASY", "$AUTOTEST/ats_easy") };
EnvironmentVariable[] resolve = EnvironmentResolver.resolve(env, vars);
assertNotNull(resolve);
test(resolve, "AUTOTEST", "/Develop/cisco/ats5.0.0");
test(resolve, "ATS_EASY", "/Develop/cisco/ats5.0.0/ats_easy");
}
public void testEnvironmentResolve004() {
Map<String, String> env = new HashMap<>();
env.put("PATH", "/bin:/usr/bin");
EnvironmentVariable[] vars = new EnvironmentVariable[] {
mk("PATH", "/sbin:$PATH") };
EnvironmentVariable[] resolve = EnvironmentResolver.resolve(env, vars);
assertNotNull(resolve);
test(resolve, "PATH", "/sbin:/bin:/usr/bin");
}
public void testEnvironmentResolve005() {
Map<String, String> env = new HashMap<>();
env.put("PATH", "/bin:/usr/bin");
EnvironmentVariable[] vars = new EnvironmentVariable[] {
new EnvironmentVariable("a1", "A1"),
new EnvironmentVariable("a2", "A2$a1"),
new EnvironmentVariable("a3", "A3$a2"),
new EnvironmentVariable("a4", "A4$a3") };
EnvironmentVariable[] resolve = EnvironmentResolver.resolve(env, vars);
assertNotNull(resolve);
test(resolve, "a1", "A1");
test(resolve, "a2", "A2A1");
test(resolve, "a3", "A3A2A1");
test(resolve, "a4", "A4A3A2A1");
}
public void testEnvironmentResolve006() {
Map<String, String> env = new HashMap<>();
env.put("PATH", "/bin:/usr/bin");
EnvironmentVariable[] vars = new EnvironmentVariable[] {
new EnvironmentVariable("a1", "A1$a4"),
new EnvironmentVariable("a2", "A2$a1"),
new EnvironmentVariable("a3", "A3$a2"),
new EnvironmentVariable("a4", "A4$a3") };
EnvironmentVariable[] resolve = EnvironmentResolver.resolve(env, vars);
assertEquals(resolve.length, 0);
}
public void testEnvironmentResolve007() {
Map<String, String> env = new HashMap<>();
env.put("PATH", "/bin:/usr/bin");
EnvironmentVariable[] vars = new EnvironmentVariable[] {
new EnvironmentVariable("a1", "$a2"),
new EnvironmentVariable("a2", "a2") };
EnvironmentVariable[] resolve = EnvironmentResolver.resolve(env, vars);
assertEquals(resolve.length, 2);
test(resolve, "a1", "a2");
test(resolve, "a2", "a2");
}
public void testEnvironmentResolve008() {
Map<String, String> env = new HashMap<>();
env.put("PATH", "/bin:/usr/bin");
EnvironmentVariable[] vars = new EnvironmentVariable[] {
new EnvironmentVariable("PATH", "/sbii/bin/:$PATH"),
new EnvironmentVariable("a2", "alla{$PATH}") };
EnvironmentVariable[] resolve = EnvironmentResolver.resolve(env, vars);
assertEquals(resolve.length, 2);
test(resolve, "PATH", "/sbii/bin/:/bin:/usr/bin");
test(resolve, "a2", "alla{/sbii/bin/:/bin:/usr/bin}");
}
public void testEnvironmentResolve008a() {
Map<String, String> env = new HashMap<>();
EnvironmentVariable[] vars = new EnvironmentVariable[] {
new EnvironmentVariable("PATH", "/sbii/bin/:$PATH"),
new EnvironmentVariable("a2", "alla{$PATH}") };
EnvironmentVariable[] resolve = EnvironmentResolver.resolve(env, vars,
true);
assertEquals(resolve.length, 2);
test(resolve, "PATH", "/sbii/bin/:$PATH");
test(resolve, "a2", "alla{$PATH}");
}
private void test(EnvironmentVariable[] resolve, String b, String v) {
assertContains(resolve, mk(b, v));
}
private EnvironmentVariable mk(String name, String value) {
return new EnvironmentVariable(name, value);
}
private void assertContains(EnvironmentVariable[] resolve,
EnvironmentVariable environmentVariable) {
String name = environmentVariable.getName();
for (int i = 0; i < resolve.length; i++) {
if (resolve[i].getName().equals(name)) {
assertEquals("Variable:" + name, environmentVariable.getValue(),
resolve[i].getValue());
return;
}
}
fail("Not found " + environmentVariable.toString());
}
public static Test suite() {
return new Suite(EnvironmentResolverTests.class);
}
}