1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
source("TestHarness.bsh");
import bsh.*;
if ( Capabilities.classExists("bsh.ExternalNameSpace") )
{
Interpreter interpreter = new Interpreter();
Map myMap = new HashMap();
ens = new ExternalNameSpace( interpreter.getNameSpace(), "Test", myMap );
interpreter.setNameSpace( ens );
interpreter.eval("foo=42");
assert( myMap.get("foo") instanceof Integer );
assert( myMap.get("foo") == 42 );
interpreter.eval("int bar = 43");
// it's a primitive to bsh
assert( interpreter.eval("bar.getClass() == bsh.Primitive.class") == true );
// it's an Integer to the map
assert( myMap.get("bar") instanceof Integer );
assert( myMap.get("bar") == 43 );
// check again
assert( interpreter.eval("bar.getClass() == bsh.Primitive.class") == true );
assert( interpreter.get("e1") == null );
myMap.put( "e2", new Integer(44) );
assert( interpreter.get("e2") == 44 );
myMap.put( "d1", new Date() );
assert( interpreter.get("d1") instanceof Date );
myMap.put( "d1", new Double(49.9) );
assert( interpreter.get("d1") instanceof Double );
interpreter.eval("print(this.variables)");
// set var in bsh then remove it in external map
interpreter.eval("x1=42");
assert( interpreter.get("x1") == 42 );
myMap.remove("x1");
assert( interpreter.get("x1") == null ); // interpreter maps VOID to null
} else
warning("No ExternalNameSpace to test...");
complete();
|