package scripting; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import php.runtime.Information; import javax.script.*; @RunWith(JUnit4.class) public class JSR223Test { @Test public void testBase() { ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory.getEngineByName("jphp"); ScriptEngineFactory f = engine.getFactory(); Assert.assertNotNull(engine); Assert.assertTrue(engine instanceof Compilable); Assert.assertNotNull(f); Assert.assertEquals(Information.NAME, f.getEngineName()); Assert.assertEquals("php", f.getLanguageName()); } @Test public void testVariableSet() throws Exception { ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory.getEngineByName("jphp"); engine.put("foo", "bar"); Object value = engine.eval("<?php return $foo;"); Assert.assertEquals("bar", value.toString()); } @Test public void testVariableGet() throws Exception { ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory.getEngineByName("jphp"); engine.eval("<?php $baz = 'test value';"); Assert.assertEquals("test value", engine.get("baz").toString()); } @Test public void testCompilable() throws Exception { ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory.getEngineByName("jphp"); CompiledScript script = ((Compilable)engine).compile("<?php return $foo;"); engine.put("foo", "first"); Assert.assertEquals("first", script.eval().toString()); engine.put("foo", "second"); Assert.assertEquals("second", script.eval().toString()); } }