* Test of containsKey method, of class BiVariableMap.
*/
@Test
public void testContainsKey() {
logger1.info("containsKey");
ScriptingContainer container = new ScriptingContainer(LocalContextScope.SINGLETHREAD, LocalVariableBehavior.TRANSIENT);
BiVariableMap instance = container.getVarMap();
container.put("ARGV", new String[] { "spring", "fall" });
container.put("SEASON", new String[] { "summer", "winter" });
container.put("$sports", new String[] { "baseball", "hiking", "soccer", "ski" });
container.put("@weather", new String[] { "snow", "sleet", "drizzle", "rain" });
container.put("trees", new String[] { "cypress", "hemlock", "spruce" });
assertTrue(instance.containsKey("ARGV"));
assertTrue(instance.containsKey("SEASON"));
assertTrue(instance.containsKey("$sports"));
assertTrue(instance.containsKey("@weather"));
assertTrue(instance.containsKey("trees"));
container = new ScriptingContainer(LocalContextScope.SINGLETHREAD, LocalVariableBehavior.GLOBAL);
instance = container.getVarMap();
container.put("ARGV", new String[] { "spring", "fall" });
container.put("SEASON", new String[] { "summer", "winter" });
container.put("$sports", new String[] { "baseball", "hiking", "soccer", "ski" });
container.put("@weather", new String[] { "snow", "sleet", "drizzle", "rain" });
container.put("trees", new String[] { "cypress", "hemlock", "spruce" });
assertTrue(instance.containsKey("ARGV"));
assertTrue(instance.containsKey("SEASON"));
assertFalse(instance.containsKey("$sports"));
assertFalse(instance.containsKey("@weather"));
assertTrue(instance.containsKey("trees"));
// eager retieval mode test
container = new ScriptingContainer(LocalContextScope.SINGLETHREAD, LocalVariableBehavior.GLOBAL, false);
instance = container.getVarMap();
assertTrue(instance.isEmpty());
container.runScriptlet("$SEASON = ['mid-winter', 'late-summer']; ARGV << \"St. Patrick's day\"");
assertTrue(instance.containsKey("SEASON"));
assertTrue(instance.containsKey("ARGV"));
assertFalse(instance.containsKey("trees"));
assertEquals(2, instance.size());
// lazy retieval mode test
container = new ScriptingContainer(LocalContextScope.SINGLETHREAD, LocalVariableBehavior.GLOBAL, true);
instance = container.getVarMap();
assertTrue(instance.isEmpty());
container.runScriptlet("$SEASON = ['mid-winter', 'late-summer']; ARGV << \"St. Patrick's day\"");
assertFalse(instance.containsKey("SEASON"));
List<String> expResult1 = Arrays.asList("mid-winter", "late-summer");
List<String> result1 = (List<String>) container.get("SEASON");
assertEquals(expResult1, result1);
assertTrue(instance.containsKey("SEASON"));
assertFalse(instance.containsKey("ARGV"));
List<String> expResult2 = new ArrayList<String>();
expResult2.add("St. Patrick's day");
List<String> result2 = (List<String>) container.get("ARGV");
assertEquals(expResult2, result2);
assertTrue(instance.containsKey("ARGV"));
}