1 package test.polymorphic; 2 3 import org.codehaus.aspectwerkz.joinpoint.JoinPoint; 4 import org.codehaus.aspectwerkz.joinpoint.MethodRtti; 5 import org.codehaus.aspectwerkz.joinpoint.ConstructorRtti; 6 import org.codehaus.aspectwerkz.joinpoint.Rtti; 7 import junit.framework.TestCase; 8 9 public class PolymorphicTest extends TestCase { 10 11 public static StringBuffer LOG = new StringBuffer (""); 12 13 public void testPolymorphicCallJoinPoint() { 14 LOG = new StringBuffer (""); 16 SubClass child = new SubClass(); 17 child.methodTest(); 18 assertEquals("call child parent parent 1 ", LOG.toString()); 19 20 LOG = new StringBuffer (""); 21 SuperClass parent = new SuperClass(); 22 parent.methodTest(); 23 assertEquals("call parent ", LOG.toString()); 24 } 25 26 public void testCtorCall() { 27 LOG = new StringBuffer (""); 28 SubClass child = new SubClass("s"); 29 assertEquals("callctor parent s child s ", LOG.toString()); 30 31 LOG = new StringBuffer (""); 32 SuperClass parent = new SuperClass("ss"); 33 assertEquals("callctor parent ss ", LOG.toString()); 34 } 35 36 public void testCtorExecution() { 37 LOG = new StringBuffer (""); 38 SubClass child = new SubClass(0); 39 assertEquals("exector parent 0 exector child 0 ", LOG.toString()); 40 41 LOG = new StringBuffer (""); 42 SuperClass parent = new SuperClass(1); 43 assertEquals("exector parent 1 ", LOG.toString()); 44 } 45 46 public static void main(String [] args) { 47 junit.textui.TestRunner.run(suite()); 48 } 49 50 public static junit.framework.Test suite() { 51 return new junit.framework.TestSuite(PolymorphicTest.class); 52 } 53 54 55 57 public static class TestAspect { 58 59 public void method1Advise(JoinPoint joinPoint) { 60 MethodRtti mrtti = (MethodRtti) joinPoint.getRtti(); 61 LOG.append("call "); 62 } 63 64 public void ctor1Advise(JoinPoint joinPoint) { 65 ConstructorRtti crtti = (ConstructorRtti) joinPoint.getRtti(); 66 LOG.append("exector "); 67 } 68 69 public void ctor2Advise(JoinPoint joinPoint) { 70 ConstructorRtti crtti = (ConstructorRtti) joinPoint.getRtti(); 71 LOG.append("callctor "); 72 } 73 } 74 } | Popular Tags |