[jboss-cvs] JBossAS SVN: r59356 - in projects/aop/trunk/aop/src: resources/test/beforeafterArgs test/org/jboss/test/aop/beforeafterArgs

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jan 4 12:12:49 EST 2007


Author: flavia.rainone
Date: 2007-01-04 12:12:36 -0500 (Thu, 04 Jan 2007)
New Revision: 59356

Modified:
   projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetAspect.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetPOJO.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetTestCase.java
Log:
[JBAOP-326] More Target parameter tests

Modified: projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml
===================================================================
--- projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml	2007-01-04 16:42:18 UTC (rev 59355)
+++ projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml	2007-01-04 17:12:36 UTC (rev 59356)
@@ -15,6 +15,7 @@
    
    <bind pointcut="set(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->field2)">
       <before name="before6" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect" />
+      <before name="XXX6" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect" />
       <after name="after6" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect" />
    </bind>
 
@@ -171,12 +172,60 @@
    <!-- @Target test -->
 	<aspect class="org.jboss.test.aop.beforeafterArgs.TargetAspect" scope="PER_VM"/>
 
+   <bind pointcut="execution(org.jboss.test.aop.beforeafterArgs.TargetPOJO->new(int))">
+		<before name="before1" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <before name="before2" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <advice name="around1" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <advice name="around2" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <after name="after1" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <after name="after2" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+   </bind>
+
+   <bind pointcut="field(int org.jboss.test.aop.beforeafterArgs.TargetPOJO->*)">
+		<before name="before1" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <before name="before2" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <advice name="around1" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <advice name="around2" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <after name="after1" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <after name="after2" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+   </bind>
+	
 	<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.TargetPOJO->method1(..))">
 		<before name="before1" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
       <before name="before2" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <advice name="around1" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <advice name="around2" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <after name="after1" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <after name="after2" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
    </bind>
 
+   <bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.TargetPOJO->method2(..))">
+		<before name="before1" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <before name="before2" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <advice name="around1" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <advice name="around2" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <after name="after1" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <after name="after2" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+   </bind>
 
+   <bind pointcut="call(org.jboss.test.aop.beforeafterArgs.TargetPOJO2->new(int))">
+		<before name="before1" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <before name="before2" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <advice name="around1" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <advice name="around2" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <after name="after1" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <after name="after2" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+   </bind>
+   
+   <bind pointcut="call(void org.jboss.test.aop.beforeafterArgs.TargetPOJO2->*())">
+		<before name="before1" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <before name="before2" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <advice name="around1" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <advice name="around2" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <after name="after1" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+      <after name="after2" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+   </bind>
+
    <!-- @Thrown test -->
 	<aspect class="org.jboss.test.aop.beforeafterArgs.ThrownAspect" scope="PER_VM"/>
 

Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetAspect.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetAspect.java	2007-01-04 16:42:18 UTC (rev 59355)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetAspect.java	2007-01-04 17:12:36 UTC (rev 59356)
@@ -22,6 +22,7 @@
 package org.jboss.test.aop.beforeafterArgs;
 
 import org.jboss.aop.advice.annotation.Target;
+import org.jboss.aop.joinpoint.CurrentInvocation;
 
 /**
  * Aspect used on @Args parameter tests.
@@ -32,14 +33,26 @@
 {
    static boolean before1 = false;
    static boolean before2 = false;
+   static boolean around1 = false;
+   static boolean around2 = false;
+   static boolean after1 = false;
+   static boolean after2 = false;
  
    static Object before2Target = null;
+   static Object around2Target = null;
+   static Object after2Target = null;
    
    public static void clear()
    {
       before1 = false;
       before2 = false;
+      around1 = false;
+      around2 = false;
+      after1 = false;
+      after2 = false;
       before2Target = null;
+      around2Target = null;
+      after2Target = null;
    }
    
    public void before1()
@@ -52,4 +65,28 @@
       before2 = true;
       before2Target = target;
    }
+   
+   public Object around1() throws Throwable
+   {
+      around1 = true;
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around2(@Target Object target) throws Throwable
+   {
+      around2 = true;
+      around2Target = target;
+      return CurrentInvocation.proceed();
+   }
+   
+   public void after1()
+   {
+      after1 = true;
+   }
+   
+   public void after2(@Target Object target)
+   {
+      after2 = true;
+      after2Target = target;
+   }
 }
\ No newline at end of file

Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetPOJO.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetPOJO.java	2007-01-04 16:42:18 UTC (rev 59355)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetPOJO.java	2007-01-04 17:12:36 UTC (rev 59356)
@@ -29,5 +29,50 @@
  */
 public class TargetPOJO
 {
+   public TargetPOJO(){}
+   public TargetPOJO(int x){}
+   
+   public int field1;
+   public static int field2;
+   
    public void method1(){}
+   public static void method2(){}
+   
+   public void method3(){
+      new TargetPOJO2(3);
+   }
+   
+   public void method4()
+   {
+      TargetPOJO2 pojo2 = new TargetPOJO2();
+      pojo2.method1();
+   }
+   
+   public void method5()
+   {
+      TargetPOJO2.method2();
+   }
+   
+   public static void method6(){
+      new TargetPOJO2(3);
+   }
+   
+   public static void method7()
+   {
+      TargetPOJO2 pojo2 = new TargetPOJO2();
+      pojo2.method1();
+   }
+   
+   public static void method8()
+   {
+      TargetPOJO2.method2();
+   }
+}
+
+class TargetPOJO2
+{
+   public TargetPOJO2(){}
+   public TargetPOJO2(int x){}
+   public void method1(){}
+   public static void method2(){}
 }
\ No newline at end of file

Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetTestCase.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetTestCase.java	2007-01-04 16:42:18 UTC (rev 59355)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetTestCase.java	2007-01-04 17:12:36 UTC (rev 59356)
@@ -59,12 +59,112 @@
       TargetAspect.clear();
       this.pojo = new TargetPOJO();
    }
-   
+
    public void test1()
    {
+      new TargetPOJO(1);
+      assertStaticAdvices();
+   }
+
+   
+   public void test2()
+   {
+      pojo.field1 = 0;
+      assertAllAdvices();
+      assertSame(pojo, TargetAspect.before2Target);
+   }
+   
+   public void test3()
+   {
+      int test = pojo.field1;
+      assertAllAdvices();
+      assertSame(pojo, TargetAspect.before2Target);
+   }
+   
+   public void test4()
+   {
+      TargetPOJO.field2 = 5;
+      assertStaticAdvices();
+   }
+   
+   public void test5()
+   {
+      int test = TargetPOJO.field2;
+      assertStaticAdvices();
+   }
+   
+   public void test6()
+   {
       pojo.method1();
+      assertAllAdvices();
+      assertSame(pojo, TargetAspect.before2Target);
+   }
+   
+   public void test7()
+   {
+      TargetPOJO.method2();
+      assertStaticAdvices();
+   }
+   
+   public void test8()
+   {
+      pojo.method3();
+      assertStaticAdvices();
+   }
+   
+   public void test9()
+   {
+      pojo.method4();
+      assertAllAdvices();
+   }
+   
+   public void test10()
+   {
+      pojo.method5();
+      assertStaticAdvices();
+   }
+   
+   public void test11()
+   {
+      TargetPOJO.method6();
+      assertStaticAdvices();
+   }
+   
+   public void test12()
+   {
+      TargetPOJO.method7();
+      assertAllAdvices();
+   }
+   
+   public void test13()
+   {
+      TargetPOJO.method8();
+      assertStaticAdvices();
+   }
+   
+   private void assertAllAdvices()
+   {
       assertTrue(TargetAspect.before1);
       assertTrue(TargetAspect.before2);
-      assertSame(pojo, TargetAspect.before2Target);
+      assertTrue(TargetAspect.around1);
+      assertTrue(TargetAspect.around2);
+      assertTrue(TargetAspect.after1);
+      assertTrue(TargetAspect.after2);
+      assertNotNull(TargetAspect.before2Target);
+      assertSame(TargetAspect.before2Target, TargetAspect.around2Target);
+      assertSame(TargetAspect.around2Target, TargetAspect.after2Target);
    }
+   
+   private void assertStaticAdvices()
+   {
+      assertTrue(TargetAspect.before1);
+      assertFalse(TargetAspect.before2);
+      assertTrue(TargetAspect.around1);
+      assertFalse(TargetAspect.around2);
+      assertTrue(TargetAspect.after1);
+      assertFalse(TargetAspect.after2);
+      assertNull(TargetAspect.before2Target);
+      assertNull(TargetAspect.around2Target);
+      assertNull(TargetAspect.after2Target);
+   }
 }
\ No newline at end of file




More information about the jboss-cvs-commits mailing list