* Test of containsValue method, of class BiVariableMap.
*/
@Test
public void testContainsValue() {
logger1.info("containsValue");
ScriptingContainer container = new ScriptingContainer(LocalContextScope.SINGLETHREAD, LocalVariableBehavior.TRANSIENT);
BiVariableMap instance = container.getVarMap();
ArrayList<String> argv_values = new ArrayList<String>();
argv_values.add("spring"); argv_values.add("fall");
container.put("ARGV", argv_values);
assertTrue(instance.containsValue(argv_values));
ArrayList<String> const_values = new ArrayList<String>();
const_values.add("summer"); const_values.add("winter");
container.put("SEASON", const_values);
assertTrue(instance.containsValue(argv_values));
ArrayList<String> gvar_values = new ArrayList<String>();
gvar_values.add("baseball"); gvar_values.add("soccer"); gvar_values.add("ski");
container.put("$sports", gvar_values);
assertTrue(instance.containsValue(gvar_values));
ArrayList<String> ivar_values = new ArrayList<String>();
ivar_values.add("snow"); ivar_values.add("sleet"); ivar_values.add("drizzle");
container.put("@weather", ivar_values);
assertTrue(instance.containsValue(ivar_values));
ArrayList<String> lvar_values = new ArrayList<String>();
lvar_values.add("cypress"); lvar_values.add("hemlock"); lvar_values.add("spruce");
container.put("trees", lvar_values);
assertTrue(instance.containsValue(lvar_values));
container.runScriptlet("ARGV << \"late-fall\"; SEASON << \"mid-summer\"; $sports << \"basketball\"; @weather << \"freezing-rain\"");
argv_values.add("late-fall");
const_values.add("mid-summer");
gvar_values.add("basketball");
ivar_values.add("freezing-rain");
// transient type lvar should vanish after eval.
assertFalse(instance.containsValue(lvar_values));
// lazy retrieval mode. needs to get before containsValue method
assertEquals(argv_values, container.get("ARGV"));
assertEquals(const_values, container.get("SEASON"));
assertEquals(gvar_values, container.get("$sports"));
assertEquals(ivar_values, container.get("@weather"));
assertNull(container.get("trees"));
assertTrue(instance.containsValue(argv_values));
assertTrue(instance.containsValue(const_values));
assertTrue(instance.containsValue(gvar_values));
assertTrue(instance.containsValue(ivar_values));
assertFalse(instance.containsValue(lvar_values));
container = new ScriptingContainer(LocalContextScope.SINGLETHREAD, LocalVariableBehavior.GLOBAL, false);
instance = container.getVarMap();
container.put("ARGV", argv_values);
assertTrue(instance.containsValue(argv_values));
container.put("SEASON", const_values);
assertTrue(instance.containsValue(argv_values));
container.put("$sports", gvar_values);
assertFalse(instance.containsValue(gvar_values));
container.put("@weather", ivar_values);
assertFalse(instance.containsValue(ivar_values));
container.put("trees", lvar_values);
assertTrue(instance.containsValue(lvar_values));
container.runScriptlet("ARGV << \"early-winter\"; $SEASON << \"deep-fall\"; $trees << \"pine\"");
argv_values.add("early-winter");
const_values.add("deep-fall");
lvar_values.add("pine");
// eager retrival mode. no need to get before containesValue method
assertTrue(instance.containsValue(argv_values));
assertTrue(instance.containsValue(const_values));
assertTrue(instance.containsValue(lvar_values));
assertEquals(argv_values, container.get("ARGV"));
assertEquals(const_values, container.get("SEASON"));
assertEquals(lvar_values, container.get("trees"));
}