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 +}