|
1234567891011121314151617181920212223242526272829303132333435363738394041 |
- package javassist.tools;
-
- import javassist.*;
- import junit.framework.TestCase;
- import test.javassist.tools.DummyClass;
- import test.javassist.tools.DefineClassCapability;
-
- 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(DefineClassCapability.class);
- new DummyClass().dummyMethod();
- }
- }
|