Changeset 28348

Show
Ignore:
Timestamp:
12/25/07 12:33:35 (1 year ago)
Author:
sfermigier
Message:

Make a real unit test.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • org.nuxeo.runtime/trunk/nuxeo-runtime-scripting/src/test/java/org/nuxeo/runtime/scripting/TestEngines.java

    r24983 r28348  
    2020package org.nuxeo.runtime.scripting; 
    2121 
     22import junit.framework.TestCase; 
     23 
    2224import javax.script.ScriptEngine; 
    2325import javax.script.ScriptEngineManager; 
     
    2830 * 
    2931 */ 
    30 public class Hello
     32public class TestEngines extends TestCase
    3133 
    32     public static void main(String[] args) { 
    33  
    34         Hello hello = new Hello(); 
    35  
    36         try { 
    37             hello.testJRuby(); 
    38             hello.testJEXL(); 
    39             hello.testJS(); 
    40             hello.testBSH(); 
    41             hello.testGroovy(); 
    42             hello.testJython(); 
    43         } catch (ScriptException e) { 
    44             e.printStackTrace(); 
    45         } 
    46  
    47     } 
     34    private ScriptEngineManager factory = new ScriptEngineManager(); 
    4835 
    4936    public void testJRuby() throws ScriptException { 
    50         ScriptEngineManager factory = new ScriptEngineManager(); 
    51  
    5237        // Create a JRuby engine. 
    5338        ScriptEngine engine = factory.getEngineByName("jruby"); 
    5439 
    5540        // Evaluate JRuby code from string. 
    56         engine.eval("puts('Hello from Ruby')"); 
     41        assertEquals("Hello", engine.eval("'Hello'")); 
     42        assertEquals(Long.valueOf(3), engine.eval("1 + 2")); 
    5743 
     44        // Doesn't work. 
     45        //engine.eval("x = 1"); 
     46        //assertEquals(Integer.valueOf(1), engine.eval("x")); 
     47        //assertEquals(Integer.valueOf(1), engine.get("x")); 
    5848    } 
    5949 
    6050    public void testJS() throws ScriptException { 
    61         ScriptEngineManager factory = new ScriptEngineManager(); 
    62  
    6351        // Create a JS engine. 
    6452        ScriptEngine engine = factory.getEngineByName("js"); 
    6553 
    6654        // Evaluate JS code from string. 
    67         engine.eval("print('Hello From JavaScript')"); 
     55        assertEquals("Hello", engine.eval("'Hello'")); 
     56        assertEquals(Integer.valueOf(3), engine.eval("1 + 2")); 
     57        engine.eval("var x = 1 + 2;"); 
     58        assertEquals(Integer.valueOf(3), engine.eval("x")); 
     59        assertEquals(Integer.valueOf(3), engine.get("x")); 
    6860    } 
    6961 
    7062    public void testJython() throws ScriptException { 
    71         ScriptEngineManager factory = new ScriptEngineManager(); 
    72  
    7363        // Create a Python engine. 
    7464        ScriptEngine engine = factory.getEngineByName("jython"); 
    7565 
    7666        // Evaluate Jython code from string. 
    77         engine.eval("print \"Hello From Python\""); 
     67        // This doesn't work for Jython 
     68        //assertEquals("Hello", engine.eval("'Hello'")); 
     69        engine.eval("s = 'Hello'"); 
     70        assertEquals("Hello", engine.get("s")); 
     71        engine.eval("x = 1 + 2"); 
     72        assertEquals(Integer.valueOf(3), engine.get("x")); 
    7873    } 
    7974 
    8075    public void testJEXL() throws ScriptException { 
    81         ScriptEngineManager factory = new ScriptEngineManager(); 
    82  
    8376        // Create a JEXL engine. 
    8477        ScriptEngine engine = factory.getEngineByName("jexl"); 
    8578 
    86         // Evaluate JRuby code from string. 
    87         System.out.println(engine.eval("\"Hello from JEXL\"")); 
     79        // Evaluate JEXL code from string. 
     80        assertEquals("Hello", engine.eval("\"Hello\"")); 
     81        assertEquals(Integer.valueOf(3), engine.eval("3")); 
    8882    } 
    8983 
    9084    public void testGroovy() throws ScriptException { 
    91         ScriptEngineManager factory = new ScriptEngineManager(); 
    92  
    93         // Create a JEXL engine. 
     85        // Create a Groovy engine. 
    9486        ScriptEngine engine = factory.getEngineByName("groovy"); 
    9587 
    96         // Evaluate JRuby code from string. 
    97         System.out.println(engine.eval("println \"Hello from Groovy\"")); 
     88        // Evaluate Groovy code from string. 
     89        assertEquals("Hello", engine.eval("\"Hello\"")); 
     90        assertEquals(Integer.valueOf(3), engine.eval("1 + 2")); 
     91        engine.eval("s = \"Hello\""); 
     92        assertEquals("Hello", engine.get("s")); 
     93        engine.eval("x = 1 + 2"); 
     94        assertEquals(Integer.valueOf(3), engine.get("x")); 
    9895    } 
    9996 
    100     public void testBSH() throws ScriptException { 
    101         ScriptEngineManager factory = new ScriptEngineManager(); 
    102  
    103         // Create a JEXL engine. 
     97    // BSH broken seemingly 
     98    public void xxxtestBSH() throws ScriptException { 
     99        // Create a BSH engine. 
    104100        ScriptEngine engine = factory.getEngineByName("bsh"); 
    105101 
    106         // Evaluate JRuby code from string. 
    107         System.out.println(engine.eval("print(\"Hello from BSH\")")); 
     102        // Evaluate BSH code from string. 
     103        assertEquals("Hello", engine.eval("\"Hello\"")); 
    108104    } 
    109105