12345678910111213141516171819202122232425262728293031323334353637383940 |
- package javassist.tools;
-
- import javassist.*;
- import junit.framework.TestCase;
- import test.javassist.tools.DummyClass;
-
- import static javassist.tools.Callback.*;
-
- public class CallbackTest extends TestCase {
-
- public void testSomeCallbacks() throws Exception {
-
- // Get class and method to change
- ClassPool pool = ClassPool.getDefault();
- CtClass classToChange = pool.get("test.javassist.tools.DummyClass");
- CtMethod methodToChange = classToChange.getDeclaredMethod("dummyMethod");
-
- // Insert after
- methodToChange.insertAfter(new Callback("Thread.currentThread(), dummyString") {
- @Override
- public void result(Object... objects) {
- assertEquals(objects[0], Thread.currentThread());
- assertEquals(objects[1], "dummyStringValue");
- }
- }.sourceCode());
-
- // Insert after using utility method
- insertAfter(methodToChange, new Callback("Thread.currentThread(), dummyString") {
- @Override
- public void result(Object... objects) {
- assertEquals(objects[0], Thread.currentThread());
- assertEquals(objects[1], "dummyStringValue");
- }
- });
-
- // Change class and invoke method;
- classToChange.toClass();
- new DummyClass().dummyMethod();
- }
- }
|