vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java
branchstrings
changeset 34 6fcc0dfbe324
child 35 7cfa9b56f888
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java	Tue Sep 25 17:30:13 2012 +0200
     1.3 @@ -0,0 +1,46 @@
     1.4 +package org.apidesign.vm4brwsr;
     1.5 +
     1.6 +import javax.script.Invocable;
     1.7 +import javax.script.ScriptException;
     1.8 +import org.testng.annotations.Test;
     1.9 +import static org.testng.Assert.*;
    1.10 +
    1.11 +/**
    1.12 + *
    1.13 + * @author Jaroslav Tulach <jtulach@netbeans.org>
    1.14 + */
    1.15 +public class StringTest {
    1.16 +    @Test public void firstChar() throws Exception {
    1.17 +        assertExec(
    1.18 +            "First char in Hello is H",
    1.19 +            "org_apidesign_vm4brwsr_StringSample_sayHelloCI",
    1.20 +            Double.valueOf((int)'H'), 0
    1.21 +        );
    1.22 +    }
    1.23 +    
    1.24 +    private static void assertExec(String msg, String methodName, Object expRes, Object... args) throws Exception {
    1.25 +        StringBuilder sb = new StringBuilder();
    1.26 +        Invocable i = StaticMethodTest.compileClass(sb, 
    1.27 +            "org/apidesign/vm4brwsr/StringSample",
    1.28 +            "java/lang/String"
    1.29 +        );
    1.30 +        
    1.31 +        Object ret = null;
    1.32 +        try {
    1.33 +            ret = i.invokeFunction(methodName, args);
    1.34 +        } catch (ScriptException ex) {
    1.35 +            fail("Execution failed in " + sb, ex);
    1.36 +        } catch (NoSuchMethodException ex) {
    1.37 +            fail("Cannot find method in " + sb, ex);
    1.38 +        }
    1.39 +        if (ret == null && expRes == null) {
    1.40 +            return;
    1.41 +        }
    1.42 +        if (expRes.equals(ret)) {
    1.43 +            return;
    1.44 +        }
    1.45 +        assertEquals(ret, expRes, msg + "was: " + ret + "\n" + sb);
    1.46 +        
    1.47 +    }
    1.48 +    
    1.49 +}