summaryrefslogtreecommitdiffstats
path: root/sandbox/ant/container.script/src/test/java/org/apache/tuscany/container/script/jsr223/JSR223BSFEngineTestCase.java
blob: a9cc459627fba70e8e024c9b1d255bca1b304a7d (plain)
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
package org.apache.tuscany.container.script.jsr223;

import junit.framework.TestCase;

import org.apache.bsf.BSFEngine;
import org.apache.bsf.BSFException;
import org.apache.bsf.BSFManager;
import org.mozilla.javascript.EcmaError;

public class JSR223BSFEngineTestCase extends TestCase {
    
    public void testRegisterAllJSR223Engines() throws BSFException {
        JSR223BSFEngine.registerAllJSR223Engines();
        BSFEngine engine = new BSFManager().loadScriptingEngine("rhino");
        assertTrue(engine instanceof JSR223BSFEngine);
    }

    public void testDeclareBean() throws BSFException {
        JSR223BSFEngine.registerAllJSR223Engines();
        BSFManager manager = new BSFManager();
        manager.declareBean("foo", "foo", String.class);
        BSFEngine engine = manager.loadScriptingEngine("rhino");
        assertEquals("foo", engine.eval("testDeclareBean", 0, 0, "foo"));
        manager.undeclareBean("foo");
        try {
           engine.eval("testDeclareBean", 0, 0, "foo");
           fail();
        } catch (EcmaError e) {
            //expected
        }
    }

    public void testEval() throws BSFException {
        JSR223BSFEngine.registerAllJSR223Engines();
        BSFEngine engine = new BSFManager().loadScriptingEngine("rhino");
        assertEquals(true, engine.eval("testDeclareBean", 0, 0, "true"));
    }

    public void testCall() throws BSFException {
        JSR223BSFEngine.registerAllJSR223Engines();
        BSFEngine engine = new BSFManager().loadScriptingEngine("rhino");
        engine.eval("testDeclareBean", 0, 0, "function foo() { return true;}");
        assertEquals(true, engine.call(null, "foo", new Object[]{}));
    }
}