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.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package javassist.tools.reflect;
  2. import javassist.*;
  3. import junit.framework.*;
  4. public class LoaderTest extends TestCase {
  5. private Loader loader;
  6. public LoaderTest(String name) {
  7. super(name);
  8. }
  9. public void setUp() throws Exception {
  10. loader = new Loader();
  11. }
  12. public void testAttemptReflectInterface() throws Exception {
  13. try {
  14. loader.makeReflective("javassist.ClassPath",
  15. "javassist.tools.reflect.Metaobject",
  16. "javassist.tools.reflect.ClassMetaobject");
  17. fail("Attempting to reflect an interface should throw a CannotReflectException");
  18. } catch (CannotReflectException e) {
  19. // expected
  20. }
  21. }
  22. public void testAttemptReflectClassMetaobject() throws Exception {
  23. try {
  24. loader.makeReflective("javassist.tools.reflect.ClassMetaobject",
  25. "javassist.tools.reflect.Metaobject",
  26. "javassist.tools.reflect.ClassMetaobject");
  27. fail("Attempting to reflect a ClassMetaobject should throw a CannotReflectException");
  28. } catch (CannotReflectException e) {
  29. // expected
  30. }
  31. }
  32. public void testAttemptReflectMetaobject() throws Exception {
  33. try {
  34. loader.makeReflective("javassist.tools.reflect.Metaobject",
  35. "javassist.tools.reflect.Metaobject",
  36. "javassist.tools.reflect.ClassMetaobject");
  37. fail("Attempting to reflect a Metaobject should throw a CannotReflectException");
  38. } catch (CannotReflectException e) {
  39. // expected
  40. }
  41. }
  42. public void testFinalMethod() throws Throwable {
  43. loader.makeReflective("javassist.tools.reflect.SuperClass",
  44. "javassist.tools.reflect.Metaobject",
  45. "javassist.tools.reflect.ClassMetaobject");
  46. ClassPool cp = ClassPool.getDefault();
  47. CtClass cc2 = cp.get("javassist.tools.reflect.SuperClass");
  48. cc2.debugWriteFile("reflected/");
  49. CtClass cc = cp.get("javassist.tools.reflect.SubClass");
  50. CtMethod[] ms = cc.getMethods();
  51. for (int i = 0; i < ms.length; ++i)
  52. System.out.println(ms[i] + " in "
  53. + ms[i].getDeclaringClass().getName());
  54. loader.makeReflective("javassist.tools.reflect.SubClass",
  55. "javassist.tools.reflect.Metaobject",
  56. "javassist.tools.reflect.ClassMetaobject");
  57. loader.run("javassist.tools.reflect.SubClass", new String[] {});
  58. }
  59. }