# HG changeset patch # User Jaroslav Tulach # Date 1354696296 -3600 # Node ID 20c55abd6748f9fbce5cdef2e045adc949018959 # Parent ed0c92c81ea4969b6242cf3e83ab0b99998aa3df Getting ready for check for method annotations diff -r ed0c92c81ea4 -r 20c55abd6748 vm/src/test/java/org/apidesign/vm4brwsr/ClassTest.java --- a/vm/src/test/java/org/apidesign/vm4brwsr/ClassTest.java Wed Dec 05 09:28:31 2012 +0100 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/ClassTest.java Wed Dec 05 09:31:36 2012 +0100 @@ -84,21 +84,21 @@ assertExec("Check class annotation", Classes.class, "getNamer__Ljava_lang_String_2Z", "my text", false); } @Test public void javaInvokeMethod() throws Exception { - assertEquals(Classes.reflectiveMethodCall(true), "java.io.IOException", "Calls the name() method via reflection"); + assertEquals(Classes.reflectiveMethodCall(true, "name"), "java.io.IOException", "Calls the name() method via reflection"); } @Test public void jsInvokeMethod() throws Exception { assertExec("Calls the name() method via reflection", Classes.class, - "reflectiveMethodCall__Ljava_lang_Object_2Z", - "java.io.IOException", true + "reflectiveMethodCall__Ljava_lang_Object_2ZLjava_lang_String_2", + "java.io.IOException", true, "name" ); } @Test public void javaFindMethod() throws Exception { - assertEquals(Classes.reflectiveMethodCall(false), "java.io.IOException", "Calls the name() method via reflection"); + assertEquals(Classes.reflectiveMethodCall(false, "name"), "java.io.IOException", "Calls the name() method via reflection"); } @Test public void jsFindMethod() throws Exception { assertExec("Calls the name() method via reflection", Classes.class, - "reflectiveMethodCall__Ljava_lang_Object_2Z", - "java.io.IOException", false + "reflectiveMethodCall__Ljava_lang_Object_2ZLjava_lang_String_2", + "java.io.IOException", false, "name" ); } diff -r ed0c92c81ea4 -r 20c55abd6748 vm/src/test/java/org/apidesign/vm4brwsr/Classes.java --- a/vm/src/test/java/org/apidesign/vm4brwsr/Classes.java Wed Dec 05 09:28:31 2012 +0100 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/Classes.java Wed Dec 05 09:31:36 2012 +0100 @@ -83,24 +83,27 @@ @JavaScriptBody(args = "msg", body = "throw msg;") private static native void thrw(String msg); - public static Object reflectiveMethodCall(boolean direct) throws Exception { + public static Object reflectiveMethodCall(boolean direct, String mn) throws Exception { Method find = null; StringBuilder sb = new StringBuilder(); if (!direct) { final Class v = ClassesMarker.class; for (Method m : Classes.class.getMethods()) { sb.append("\n").append(m.getName()); - if (m.getName().equals("name")) { - find = m; - break; + if (mn != null) { + if (m.getName().equals(mn)) { + find = m; + break; + } + } else { + if (m.getAnnotation(v) != null) { + find = m; + break; + } } -// if (single.getAnnotation(v) != null) { -// m = single; -// break; -// } } } else { - find = Classes.class.getMethod("name"); + find = Classes.class.getMethod(mn); } if (find == null) { thrw(sb.toString());