]> source.dussan.org Git - aspectj.git/commitdiff
three more tests for @Around
authoraclement <aclement>
Fri, 23 Jun 2006 10:57:49 +0000 (10:57 +0000)
committeraclement <aclement>
Fri, 23 Jun 2006 10:57:49 +0000 (10:57 +0000)
tests/features151/ataround/BugCase1.java [new file with mode: 0644]
tests/features151/ataround/BugCase2.java [new file with mode: 0644]
tests/features151/ataround/MultipleArgs.java [new file with mode: 0644]

diff --git a/tests/features151/ataround/BugCase1.java b/tests/features151/ataround/BugCase1.java
new file mode 100644 (file)
index 0000000..4f1c01a
--- /dev/null
@@ -0,0 +1,29 @@
+import org.aspectj.lang.*;
+import org.aspectj.lang.annotation.*;
+
+@Aspect
+public class BugCase1 {
+
+       @Pointcut("call(* setAge(..)) && args(i)")
+       void setAge(int i) {}
+
+       @Around("setAge(i)")
+       public Object twiceAsOld(ProceedingJoinPoint thisJoinPoint, int i) {
+         System.err.println("advice running");
+         return thisJoinPoint.proceed(new Object[]{i*2}); 
+       }
+
+}
+
+
+public class Foo {
+  int a;
+  public void setAge(int i) {
+     System.err.println("Setting age to "+i);
+     a=i;
+  }
+
+  public static void main(String[]argv) {
+    new Foo().setAge(5);
+  }
+}
diff --git a/tests/features151/ataround/BugCase2.java b/tests/features151/ataround/BugCase2.java
new file mode 100644 (file)
index 0000000..f99833e
--- /dev/null
@@ -0,0 +1,28 @@
+import org.aspectj.lang.*;
+import org.aspectj.lang.annotation.*;
+
+@Aspect
+public class ProceedAspect {
+
+  @Pointcut("execution(* setAge(..)) && args(i)")
+  void setAge(int i) {}
+
+ @Around("setAge(i)")
+ public Object twiceAsOld(ProceedingJoinPoint thisJoinPoint, int i) {
+   System.err.println("advice running");
+   return thisJoinPoint.proceed(new Object[]{i*2});
+ }
+}
+
+
+public class Foo {
+  int a;
+  public void setAge(int i) {
+     System.err.println("Setting age to "+i);
+     a=i;
+  }
+
+  public static void main(String[]argv) {
+    new Foo().setAge(5);
+  }
+}
diff --git a/tests/features151/ataround/MultipleArgs.java b/tests/features151/ataround/MultipleArgs.java
new file mode 100644 (file)
index 0000000..b9c5b8f
--- /dev/null
@@ -0,0 +1,45 @@
+
+import org.aspectj.lang.annotation.*;
+
+@Aspect
+public class X {
+
+
+  @Before("call(* callone(..)) && !within(X) && args(a,b,c)") 
+  public void b1(ProceedingJoinPoint pjp,int a,String b,List c) {
+    System.err.println("advice running");
+    pjp.proceed(new Object[]{a,b,c});
+  }
+
+  @Before("call(* calltwo(..)) && !within(X) && args(a,b,c)") 
+  public void b1(ProceedingJoinPoint pjp,String b,List c,int a) {
+    System.err.println("advice running");
+    pjp.proceed(new Object[]{a,b,c});
+  }
+
+  @Before("call(* callone(..)) && !within(X) && args(a,b,c) && this(o)") 
+  public void b1(ProceedingJoinPoint pjp,int a,String b,List c,Object o) {
+    System.err.println("advice running");
+    pjp.proceed(new Object[]{o,a,b,c});
+  }
+
+  public static void main(String []argv) {
+    new Test().doit();
+  }
+}
+
+
+class Test {
+  public void doit() {
+    List l = new ArrayList();
+    callone(5,"hello",l);
+    calltwo(5,"hello",l);
+    callthree(5,"hello",l);
+    callfour(5,"hello",l);
+  }
+
+  public void callone(int i,String s, List l) {}
+  public void calltwo(int i,String s, List l) {}
+  public void callthree(int i,String s, List l) {}
+  public void callfour(int i,String s, List l) {}
+}