diff options
-rw-r--r-- | dcevm/src/test/java7/com/github/dcevm/test/methods/MethodReflectionTest.java | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/dcevm/src/test/java7/com/github/dcevm/test/methods/MethodReflectionTest.java b/dcevm/src/test/java7/com/github/dcevm/test/methods/MethodReflectionTest.java index a5304734..6b04e702 100644 --- a/dcevm/src/test/java7/com/github/dcevm/test/methods/MethodReflectionTest.java +++ b/dcevm/src/test/java7/com/github/dcevm/test/methods/MethodReflectionTest.java @@ -149,4 +149,47 @@ public class MethodReflectionTest { Assert.assertFalse(found); } + + // Version 0 + public static class TestArgumentRedefined { + public static String hello(TestArgumentRedefined arg) { + return arg.doHello(); + } + + public String doHello() { + return "hello0"; + } + } + + public static class TestArgumentRedefined___1 { + public static String hello(TestArgumentRedefined arg) { + return arg.doHello(); + } + + public String doHello() { + return "hello1"; + } + } + + @Test + public void testReflectionArgumentRedefined() throws Exception { + + assert __version__() == 0; + + TestArgumentRedefined t = new TestArgumentRedefined(); + Method declaredMethod = TestArgumentRedefined.class.getDeclaredMethod("hello", + TestArgumentRedefined.class); + + + for (int i = 0; i < 10; i++) { + assertEquals("hello0", declaredMethod.invoke(null, t)); + + __toVersion__(1); + + assertEquals("hello1", declaredMethod.invoke(null, t)); + + __toVersion__(0); + } + } + } |