From a0d28ad675ee916bbd7b4bb125bd73ca9de45cf7 Mon Sep 17 00:00:00 2001 From: Ivan Dubrov Date: Wed, 2 Mar 2016 13:26:05 -0800 Subject: [PATCH] Adding failing test case (#94) --- .../test/methods/MethodReflectionTest.java | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) 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); + } + } + } -- 2.39.5