You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

CallbackTest.java 1.3KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package javassist.tools;
  2. import javassist.*;
  3. import junit.framework.TestCase;
  4. import test.javassist.tools.DummyClass;
  5. import static javassist.tools.Callback.*;
  6. public class CallbackTest extends TestCase {
  7. public void testSomeCallbacks() throws Exception {
  8. // Get class and method to change
  9. ClassPool pool = ClassPool.getDefault();
  10. CtClass classToChange = pool.get("test.javassist.tools.DummyClass");
  11. CtMethod methodToChange = classToChange.getDeclaredMethod("dummyMethod");
  12. // Insert after
  13. methodToChange.insertAfter(new Callback("Thread.currentThread(), dummyString") {
  14. @Override
  15. public void result(Object... objects) {
  16. assertEquals(objects[0], Thread.currentThread());
  17. assertEquals(objects[1], "dummyStringValue");
  18. }
  19. }.sourceCode());
  20. // Insert after using utility method
  21. insertAfter(methodToChange, new Callback("Thread.currentThread(), dummyString") {
  22. @Override
  23. public void result(Object... objects) {
  24. assertEquals(objects[0], Thread.currentThread());
  25. assertEquals(objects[1], "dummyStringValue");
  26. }
  27. });
  28. // Change class and invoke method;
  29. classToChange.toClass();
  30. new DummyClass().dummyMethod();
  31. }
  32. }