package bsh;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import javax.script.ScriptException;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNull;
import static junit.framework.Assert.assertTrue;
import static junit.framework.Assert.fail;
@RunWith(FilteredTestRunner.class)
public class Issue_55_Test {
@Category( NotSuitedFor_Java5_OrLower.class )
@Test
public void check_BshScriptEngineFactory() throws Exception {
final String script = "a = null; return \"a=\" + a;\n";
final Object interpreterResult = new Interpreter().eval(script);
final Object scriptEngineResult = new BshScriptEngineFactory().getScriptEngine().eval(script);
assertEquals(interpreterResult, scriptEngineResult);
}
@Test
public void check_ExternalNameSpace() throws Exception {
final ExternalNameSpace externalNameSpace = new ExternalNameSpace();
externalNameSpace.setVariable("a", Primitive.NULL, false);
assertTrue("map should contain variable 'a'", externalNameSpace.getMap().containsKey("a"));
assertNull("variable 'a' should have value <NULL>", externalNameSpace.getMap().get("a"));
}
@Category( NotSuitedFor_Java5_OrLower.class )
@Test
public void issue_67() throws Exception {
final String script = "print(\"test\";";
try {
new BshScriptEngineFactory().getScriptEngine().eval(script);
fail("expected script exception");
} catch (ScriptException e) {
assertEquals(1, e.getLineNumber());
}
}
}