[jboss-cvs] JBossAS SVN: r60155 - in projects/aop/trunk/aop: src/resources/test/args and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Jan 31 22:18:59 EST 2007
Author: flavia.rainone at jboss.com
Date: 2007-01-31 22:18:59 -0500 (Wed, 31 Jan 2007)
New Revision: 60155
Added:
projects/aop/trunk/aop/src/test/org/jboss/test/aop/args/ArgumentsAspect.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/args/ArgumentsPOJO.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/args/ArgumentsTestCase.java
Modified:
projects/aop/trunk/aop/base-tests.xml
projects/aop/trunk/aop/build-tests-jdk50.xml
projects/aop/trunk/aop/src/resources/test/args/jboss-aop.xml
projects/aop/trunk/aop/src/test/org/jboss/test/aop/args/ArgAspect.java
Log:
[JBAOP-352] Test consistency of arguments/typed args values during execution of around advices
Modified: projects/aop/trunk/aop/base-tests.xml
===================================================================
--- projects/aop/trunk/aop/base-tests.xml 2007-02-01 03:16:44 UTC (rev 60154)
+++ projects/aop/trunk/aop/base-tests.xml 2007-02-01 03:18:59 UTC (rev 60155)
@@ -2,6 +2,9 @@
<target name="_base-tests">
<antcall target="${test-target}" inheritRefs="true">
+ <param name="test" value="args"/>
+ </antcall>
+ <antcall target="${test-target}" inheritRefs="true">
<param name="test" value="packagedotdot"/>
</antcall>
<antcall target="${test-target}" inheritRefs="true">
Modified: projects/aop/trunk/aop/build-tests-jdk50.xml
===================================================================
--- projects/aop/trunk/aop/build-tests-jdk50.xml 2007-02-01 03:16:44 UTC (rev 60154)
+++ projects/aop/trunk/aop/build-tests-jdk50.xml 2007-02-01 03:18:59 UTC (rev 60155)
@@ -465,10 +465,6 @@
</antcall>
<!-- Tests only applicable for this weaving mode -->
- <antcall target="_run-precompiled-test" inheritRefs="true">
- <param name="test" value="args"/>
- <param name="caller" value="precompiled-tests"/>
- </antcall>
<antcall target="_run-precompiled-test" inheritRefs="true">
<param name="test" value="override"/>
<param name="caller" value="precompiled-tests"/>
@@ -501,6 +497,14 @@
<param name="exclude" value="**/GenAdvisorOverrideTestCase.class"/>
</antcall>
</target>
+
+ <target name="non-optimized-test" depends="init">
+ <taskdef name="aopc" classname="org.jboss.aop.ant.AopC" classpathref="jboss.aop.classpath"/>
+ <antcall target="_run-precompiled-test" inheritRefs="true">
+ <param name="test" value="${test}"/>
+ <param name="caller" value="non-optimized-precompiled-tests"/>
+ </antcall>
+ </target>
<!-- ==================================================================================== -->
<!-- JDK 5.0 GENERATED ADVISOR PRECOMPILED TESTS -->
@@ -516,10 +520,6 @@
<!-- Tests only applicable for this weaving mode -->
<antcall target="_run-precompiled-test" inheritRefs="true">
- <param name="test" value="args"/>
- <param name="caller" value="precompiled-genadvisor-tests"/>
- </antcall>
- <antcall target="_run-precompiled-test" inheritRefs="true">
<param name="test" value="beforeafter"/>
<param name="caller" value="precompiled-genadvisor-tests"/>
</antcall>
Modified: projects/aop/trunk/aop/src/resources/test/args/jboss-aop.xml
===================================================================
--- projects/aop/trunk/aop/src/resources/test/args/jboss-aop.xml 2007-02-01 03:16:44 UTC (rev 60154)
+++ projects/aop/trunk/aop/src/resources/test/args/jboss-aop.xml 2007-02-01 03:18:59 UTC (rev 60155)
@@ -2,6 +2,69 @@
<!DOCTYPE aop SYSTEM "jboss-aop_1_0.dtd">
<aop>
+ <!-- get/setArguments test -->
+ <aspect class="org.jboss.test.aop.args.ArgumentsAspect" scope="PER_VM"/>
+
+ <stack name="getAndChange">
+ <advice name="getArgumentsAdvice1" aspect="org.jboss.test.aop.args.ArgumentsAspect"/>
+ <advice name="getAndChangeArgumentsAdvice" aspect="org.jboss.test.aop.args.ArgumentsAspect"/>
+ <advice name="getArgumentsAdvice2" aspect="org.jboss.test.aop.args.ArgumentsAspect"/>
+ </stack>
+
+ <cflow-stack name="ArgumentsPOJO1_constructor">
+ <called expr="org.jboss.test.aop.args.ArgumentsPOJO1->new(..)"/>
+ </cflow-stack>
+
+ <cflow-stack name="ArgumentsPOJO1_method">
+ <called expr="* org.jboss.test.aop.args.ArgumentsPOJO1->*(..)"/>
+ </cflow-stack>
+
+ <bind pointcut="all(org.jboss.test.aop.args.ArgumentsPOJO1)">
+ <stack-ref name="getAndChange"/>
+ </bind>
+
+ <bind pointcut="call(org.jboss.test.aop.args.CalledPOJO->new(int))" cflow="(ArgumentsPOJO1_constructor OR ArgumentsPOJO1_method)">
+ <stack-ref name="getAndChange"/>
+ </bind>
+
+ <bind pointcut="call(* org.jboss.test.aop.args.CalledPOJO->*(int))" cflow="(ArgumentsPOJO1_constructor OR ArgumentsPOJO1_method)">
+ <stack-ref name="getAndChange"/>
+ </bind>
+
+ <bind pointcut="call(static * org.jboss.test.aop.args.CalledPOJO->*(int))" cflow="(ArgumentsPOJO1_constructor OR ArgumentsPOJO1_method)">
+ <advice name="setArgumentsAdvice" aspect="org.jboss.test.aop.args.ArgumentsAspect"/>
+ </bind>
+
+ <stack name="set">
+ <advice name="getArgumentsAdvice1" aspect="org.jboss.test.aop.args.ArgumentsAspect"/>
+ <advice name="setArgumentsAdvice" aspect="org.jboss.test.aop.args.ArgumentsAspect"/>
+ <advice name="getArgumentsAdvice2" aspect="org.jboss.test.aop.args.ArgumentsAspect"/>
+ </stack>
+
+ <cflow-stack name="ArgumentsPOJO2_constructor">
+ <called expr="org.jboss.test.aop.args.ArgumentsPOJO2->new(..)"/>
+ </cflow-stack>
+
+ <cflow-stack name="ArgumentsPOJO2_method">
+ <called expr="* org.jboss.test.aop.args.ArgumentsPOJO2->*(..)"/>
+ </cflow-stack>
+
+ <bind pointcut="all(org.jboss.test.aop.args.ArgumentsPOJO2)">
+ <stack-ref name="set"/>
+ </bind>
+
+ <bind pointcut="call(org.jboss.test.aop.args.CalledPOJO->new(..))" cflow="(ArgumentsPOJO2_constructor OR ArgumentsPOJO2_method)">
+ <stack-ref name="set"/>
+ </bind>
+
+ <bind pointcut="call(* org.jboss.test.aop.args.CalledPOJO->*(..))" cflow="(ArgumentsPOJO2_constructor OR ArgumentsPOJO2_method)">
+ <stack-ref name="set"/>
+ </bind>
+
+ <bind pointcut="call(static * org.jboss.test.aop.args.CalledPOJO->*(int))" cflow="(ArgumentsPOJO2_constructor OR ArgumentsPOJO2_method)">
+ <advice name="getAndChangeArgumentsAdvice" aspect="org.jboss.test.aop.args.ArgumentsAspect"/>
+ </bind>
+
<!-- @Arg test -->
<aspect class="org.jboss.test.aop.args.ArgAspect" scope="PER_VM"/>
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/args/ArgAspect.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/args/ArgAspect.java 2007-02-01 03:16:44 UTC (rev 60154)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/args/ArgAspect.java 2007-02-01 03:18:59 UTC (rev 60155)
@@ -21,8 +21,6 @@
*/
package org.jboss.test.aop.args;
-import java.util.Collection;
-
import junit.framework.Assert;
import org.jboss.aop.advice.annotation.Arg;
Added: projects/aop/trunk/aop/src/test/org/jboss/test/aop/args/ArgumentsAspect.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/args/ArgumentsAspect.java (rev 0)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/args/ArgumentsAspect.java 2007-02-01 03:18:59 UTC (rev 60155)
@@ -0,0 +1,139 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.aop.args;
+
+import org.jboss.aop.joinpoint.ConstructorCalledByConstructorInvocation;
+import org.jboss.aop.joinpoint.ConstructorCalledByMethodInvocation;
+import org.jboss.aop.joinpoint.ConstructorInvocation;
+import org.jboss.aop.joinpoint.Invocation;
+import org.jboss.aop.joinpoint.MethodCalledByConstructorInvocation;
+import org.jboss.aop.joinpoint.MethodCalledByMethodInvocation;
+import org.jboss.aop.joinpoint.MethodInvocation;
+
+/**
+ * Aspect class used by get/setArguments tests.
+ *
+ * @author <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
+ */
+public class ArgumentsAspect
+{
+ public static Object[] arguments1 = null;
+ public static Object[] arguments2 = null;
+
+ public static final void clear()
+ {
+ arguments1 = null;
+ arguments2 = null;
+ }
+
+ public Object getAndChangeArgumentsAdvice(Invocation invocation) throws Throwable
+ {
+ Object[] arguments = getArguments(invocation);
+ if (arguments != null && arguments.length == 1)
+ {
+ arguments[0] = Integer.valueOf(((Integer) arguments[0]).intValue() /2);
+ }
+ return invocation.invokeNext();
+ }
+
+ public Object getArgumentsAdvice1(Invocation invocation) throws Throwable
+ {
+ Object[] arguments = getArguments(invocation);
+ if (arguments != null && arguments.length == 1)
+ {
+ arguments1 = arguments;
+ }
+ return invocation.invokeNext();
+ }
+
+ public Object getArgumentsAdvice2(Invocation invocation) throws Throwable
+ {
+
+ Object[] arguments = getArguments(invocation);
+ if (arguments != null && arguments.length == 1)
+ {
+ arguments2 = arguments;
+ }
+ return invocation.invokeNext();
+ }
+
+ public Object setArgumentsAdvice(Invocation invocation) throws Throwable
+ {
+ Object[] arguments = new Object[] {Integer.valueOf(37)};
+ if (invocation instanceof ConstructorInvocation &&
+ // avoid constructors that receive an intance of Call enum
+ ((ConstructorInvocation) invocation).getArguments().length == 1)
+ {
+ ((ConstructorInvocation) invocation).setArguments(arguments);
+ }
+ else if (invocation instanceof MethodInvocation)
+ {
+ ((MethodInvocation) invocation).setArguments(arguments);
+ }
+ else if (invocation instanceof ConstructorCalledByConstructorInvocation)
+ {
+ ((ConstructorCalledByConstructorInvocation) invocation).setArguments(arguments);
+ }
+ else if (invocation instanceof ConstructorCalledByMethodInvocation)
+ {
+ ((ConstructorCalledByMethodInvocation) invocation).setArguments(arguments);
+ }
+ else if (invocation instanceof MethodCalledByConstructorInvocation)
+ {
+ ((MethodCalledByConstructorInvocation) invocation).setArguments(arguments);
+ }
+ else if (invocation instanceof MethodCalledByMethodInvocation)
+ {
+ ((MethodCalledByMethodInvocation) invocation).setArguments(arguments);
+ }
+ return invocation.invokeNext();
+ }
+
+ private Object[] getArguments(Invocation invocation)
+ {
+ if (invocation instanceof ConstructorInvocation)
+ {
+ return ((ConstructorInvocation) invocation).getArguments();
+ }
+ if (invocation instanceof MethodInvocation)
+ {
+ return ((MethodInvocation) invocation).getArguments();
+ }
+ if (invocation instanceof ConstructorCalledByConstructorInvocation)
+ {
+ return ((ConstructorCalledByConstructorInvocation) invocation).getArguments();
+ }
+ if (invocation instanceof ConstructorCalledByMethodInvocation)
+ {
+ return ((ConstructorCalledByMethodInvocation) invocation).getArguments();
+ }
+ if (invocation instanceof MethodCalledByConstructorInvocation)
+ {
+ return ((MethodCalledByConstructorInvocation) invocation).getArguments();
+ }
+ if (invocation instanceof MethodCalledByMethodInvocation)
+ {
+ return ((MethodCalledByMethodInvocation) invocation).getArguments();
+ }
+ return null;
+ }
+}
\ No newline at end of file
Added: projects/aop/trunk/aop/src/test/org/jboss/test/aop/args/ArgumentsPOJO.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/args/ArgumentsPOJO.java (rev 0)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/args/ArgumentsPOJO.java 2007-02-01 03:18:59 UTC (rev 60155)
@@ -0,0 +1,179 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.aop.args;
+
+
+/**
+ * Plain old java object used by get/setArguments tests.
+ *
+ * @author <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
+ */
+class ArgumentsPOJO1
+{
+ int arg = 0;
+
+ public ArgumentsPOJO1() {}
+
+ public ArgumentsPOJO1(int arg)
+ {
+ this.arg = arg;
+ }
+
+ public ArgumentsPOJO1(Call call, int arg)
+ {
+ this.arg = call.perform(arg);
+ }
+
+ public int method(int arg)
+ {
+ return arg * 3;
+ }
+
+ public int staticMethod(int arg)
+ {
+ return arg + 20;
+ }
+
+ public CalledPOJO createPOJO(int arg)
+ {
+ return new CalledPOJO(arg);
+ }
+
+ public int callPOJO(int arg)
+ {
+ CalledPOJO pojo = new CalledPOJO();
+ return pojo.method(arg);
+ }
+
+ public int callPOJOStatic(int arg)
+ {
+ return CalledPOJO.staticMethod(arg);
+ }
+
+}
+
+/**
+ * Plain old java object used by get/setArguments tests.
+ *
+ * @author <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
+ */
+class ArgumentsPOJO2
+{
+ int arg = 0;
+
+ public ArgumentsPOJO2() {}
+
+ public ArgumentsPOJO2(int arg)
+ {
+ this.arg = arg;
+ }
+
+ public ArgumentsPOJO2(Call call, int arg)
+ {
+ this.arg = call.perform(arg);
+ }
+
+ public int method(int arg)
+ {
+ return arg * 3;
+ }
+
+ public int staticMethod(int arg)
+ {
+ return arg + 20;
+ }
+
+ public CalledPOJO createPOJO(int arg)
+ {
+ return new CalledPOJO(arg);
+ }
+
+ public int callPOJO(int arg)
+ {
+ CalledPOJO pojo = new CalledPOJO();
+ return pojo.method(arg);
+ }
+
+ public int callPOJOStatic(int arg)
+ {
+ return CalledPOJO.staticMethod(arg);
+ }
+
+}
+
+enum Call
+{
+ CONSTRUCTOR
+ {
+ public int perform(int arg)
+ {
+ CalledPOJO pojo = new CalledPOJO(arg);
+ return pojo.arg;
+ }
+ },
+
+ METHOD
+ {
+ public int perform(int arg)
+ {
+ CalledPOJO pojo = new CalledPOJO();
+ return pojo.method(arg);
+ }
+ },
+
+ STATIC_METHOD()
+ {
+ public int perform(int arg)
+ {
+ return CalledPOJO.staticMethod(arg);
+ }
+ };
+
+ public abstract int perform(int arg);
+}
+
+/**
+ * Plain old java object used by get/setArguments tests.
+ *
+ * @author <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
+ */
+class CalledPOJO
+{
+ int arg = 0;
+
+ CalledPOJO() {}
+
+ CalledPOJO(int arg)
+ {
+ this.arg = arg;
+ }
+
+ public int method(int arg)
+ {
+ return arg * 7;
+ }
+
+ public static int staticMethod(int arg)
+ {
+ return arg - 1;
+ }
+}
\ No newline at end of file
Added: projects/aop/trunk/aop/src/test/org/jboss/test/aop/args/ArgumentsTestCase.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/args/ArgumentsTestCase.java (rev 0)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/args/ArgumentsTestCase.java 2007-02-01 03:18:59 UTC (rev 60155)
@@ -0,0 +1,278 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.aop.args;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+import org.jboss.test.aop.AOPTestWithSetup;
+
+/**
+ * Tests the use of get/setArguments invocation methods.
+ *
+ * @author <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
+ */
+public class ArgumentsTestCase extends AOPTestWithSetup
+{
+ private ArgumentsPOJO1 pojo1;
+ private ArgumentsPOJO2 pojo2;
+
+ public static void main(String[] args)
+ {
+ TestRunner.run(suite());
+ }
+
+ public static Test suite()
+ {
+ TestSuite suite = new TestSuite("ArgumentsTestCase");
+ suite.addTestSuite(ArgumentsTestCase.class);
+ return suite;
+ }
+
+ public ArgumentsTestCase(String name)
+ {
+ super(name);
+ }
+
+ public void setUp() throws Exception
+ {
+ super.setUp();
+ pojo1 = new ArgumentsPOJO1();
+ pojo2 = new ArgumentsPOJO2();
+ ArgumentsAspect.clear();
+ }
+
+ public void testConstructorInvocation1()
+ {
+ ArgumentsPOJO1 pojo = new ArgumentsPOJO1(5);
+
+ assertEquals(2, pojo.arg);
+ assertNotNull(ArgumentsAspect.arguments1);
+ assertSame(ArgumentsAspect.arguments1, ArgumentsAspect.arguments2);
+ assertEquals(1, ArgumentsAspect.arguments1.length);
+ assertEquals(2, ((Integer) ArgumentsAspect.arguments1[0]).intValue());
+ }
+
+ public void testConstructorInvocation2()
+ {
+ ArgumentsPOJO2 pojo = new ArgumentsPOJO2(23);
+
+ assertEquals(37, pojo.arg);
+ assertNotNull(ArgumentsAspect.arguments1);
+ assertNotSame(ArgumentsAspect.arguments1, ArgumentsAspect.arguments2);
+ assertEquals(1, ArgumentsAspect.arguments1.length);
+ assertEquals(23, ((Integer) ArgumentsAspect.arguments1[0]).intValue());
+ assertEquals(1, ArgumentsAspect.arguments2.length);
+ assertEquals(37, ((Integer) ArgumentsAspect.arguments2[0]).intValue());
+ }
+
+ public void testMethod1()
+ {
+ assertEquals(0, pojo1.method(1));
+
+ assertNotNull(ArgumentsAspect.arguments1);
+ assertSame(ArgumentsAspect.arguments1, ArgumentsAspect.arguments2);
+ assertEquals(1, ArgumentsAspect.arguments1.length);
+ assertEquals(0, ((Integer) ArgumentsAspect.arguments1[0]).intValue());
+ }
+
+ public void testMethod2()
+ {
+ assertEquals(111, pojo2.method(1100));
+
+ assertNotNull(ArgumentsAspect.arguments1);
+ assertNotSame(ArgumentsAspect.arguments1, ArgumentsAspect.arguments2);
+ assertEquals(1, ArgumentsAspect.arguments1.length);
+ assertEquals(1100, ((Integer) ArgumentsAspect.arguments1[0]).intValue());
+ assertEquals(1, ArgumentsAspect.arguments2.length);
+ assertEquals(37, ((Integer) ArgumentsAspect.arguments2[0]).intValue());
+ }
+
+ public void testStaticMethod1()
+ {
+ assertEquals(4193, pojo1.staticMethod(8347));
+
+ assertNotNull(ArgumentsAspect.arguments1);
+ assertSame(ArgumentsAspect.arguments1, ArgumentsAspect.arguments2);
+ assertEquals(1, ArgumentsAspect.arguments1.length);
+ assertEquals(4173, ((Integer) ArgumentsAspect.arguments1[0]).intValue());
+ }
+
+ public void testStaticMethod2()
+ {
+ assertEquals(57, pojo2.staticMethod(148));
+
+ assertNotNull(ArgumentsAspect.arguments1);
+ assertNotSame(ArgumentsAspect.arguments1, ArgumentsAspect.arguments2);
+ assertEquals(1, ArgumentsAspect.arguments1.length);
+ assertEquals(148, ((Integer) ArgumentsAspect.arguments1[0]).intValue());
+ assertEquals(1, ArgumentsAspect.arguments2.length);
+ assertEquals(37, ((Integer) ArgumentsAspect.arguments2[0]).intValue());
+ }
+
+ public void testConCreatePOJO1()
+ {
+ ArgumentsPOJO1 pojo = new ArgumentsPOJO1(Call.CONSTRUCTOR, 2007);
+ assertEquals(1003, pojo.arg);
+
+ assertNotNull(ArgumentsAspect.arguments1);
+ assertSame(ArgumentsAspect.arguments1, ArgumentsAspect.arguments2);
+ assertEquals(1, ArgumentsAspect.arguments1.length);
+ assertEquals(1003, ((Integer) ArgumentsAspect.arguments1[0]).intValue());
+ }
+
+ public void testConCreatePOJO2()
+ {
+ ArgumentsPOJO2 pojo = new ArgumentsPOJO2(Call.CONSTRUCTOR, 2037);
+ assertEquals(37, pojo.arg);
+
+ assertNotNull(ArgumentsAspect.arguments1);
+ assertNotSame(ArgumentsAspect.arguments1, ArgumentsAspect.arguments2);
+ assertEquals(1, ArgumentsAspect.arguments1.length);
+ assertEquals(2037, ((Integer) ArgumentsAspect.arguments1[0]).intValue());
+ assertEquals(1, ArgumentsAspect.arguments2.length);
+ assertEquals(37, ((Integer) ArgumentsAspect.arguments2[0]).intValue());
+ }
+
+ public void testMethodCreatePOJO1()
+ {
+ // intercepted twice by each advice: once for caller, once for called
+ CalledPOJO pojo = pojo1.createPOJO(16);
+ assertEquals(4, pojo.arg);
+
+ assertNotNull(ArgumentsAspect.arguments1);
+ assertSame(ArgumentsAspect.arguments1, ArgumentsAspect.arguments2);
+ assertEquals(1, ArgumentsAspect.arguments1.length);
+ assertEquals(4, ((Integer) ArgumentsAspect.arguments1[0]).intValue());
+ }
+
+ public void testMethodCreatePOJO2()
+ {
+ // intercepted twice by each advice: once for caller, once for called
+ CalledPOJO pojo = pojo2.createPOJO(1791);
+ assertEquals(37, pojo.arg);
+
+ assertNotNull(ArgumentsAspect.arguments1);
+ assertNotSame(ArgumentsAspect.arguments1, ArgumentsAspect.arguments2);
+ assertEquals(1, ArgumentsAspect.arguments1.length);
+ assertEquals(37, ((Integer) ArgumentsAspect.arguments1[0]).intValue());
+ assertEquals(1, ArgumentsAspect.arguments2.length);
+ assertEquals(37, ((Integer) ArgumentsAspect.arguments2[0]).intValue());
+ }
+
+ public void testConCallPOJO1()
+ {
+ ArgumentsPOJO1 pojo = new ArgumentsPOJO1(Call.METHOD, 30);
+ assertEquals(105, pojo.arg);
+
+ assertNotNull(ArgumentsAspect.arguments1);
+ assertSame(ArgumentsAspect.arguments1, ArgumentsAspect.arguments2);
+ assertEquals(1, ArgumentsAspect.arguments1.length);
+ assertEquals(15, ((Integer) ArgumentsAspect.arguments1[0]).intValue());
+ }
+
+ public void testConCallPOJO2()
+ {
+ ArgumentsPOJO2 pojo = new ArgumentsPOJO2(Call.METHOD, 56);
+ assertEquals(259, pojo.arg);
+
+ assertNotNull(ArgumentsAspect.arguments1);
+ assertNotSame(ArgumentsAspect.arguments1, ArgumentsAspect.arguments2);
+ assertEquals(1, ArgumentsAspect.arguments1.length);
+ assertEquals(56, ((Integer) ArgumentsAspect.arguments1[0]).intValue());
+ assertEquals(1, ArgumentsAspect.arguments2.length);
+ assertEquals(37, ((Integer) ArgumentsAspect.arguments2[0]).intValue());
+ }
+
+ public void testMethodCallPOJO1()
+ {
+ // intercepted twice by each advice: once for caller, once for called
+ assertEquals(665, pojo1.callPOJO(382));
+
+ assertNotNull(ArgumentsAspect.arguments1);
+ assertSame(ArgumentsAspect.arguments1, ArgumentsAspect.arguments2);
+ assertEquals(1, ArgumentsAspect.arguments1.length);
+ assertEquals(95, ((Integer) ArgumentsAspect.arguments1[0]).intValue());
+ }
+
+ public void testMethodCallPOJO2()
+ {
+ // intercepted twice by each advice: once for caller, once for called
+ assertEquals(259, pojo2.callPOJO(1203));
+
+ assertNotNull(ArgumentsAspect.arguments1);
+ assertNotSame(ArgumentsAspect.arguments1, ArgumentsAspect.arguments2);
+ assertEquals(1, ArgumentsAspect.arguments1.length);
+ assertEquals(37, ((Integer) ArgumentsAspect.arguments1[0]).intValue());
+ assertEquals(1, ArgumentsAspect.arguments2.length);
+ assertEquals(37, ((Integer) ArgumentsAspect.arguments2[0]).intValue());
+ }
+
+ public void testConCallStaticPOJO1()
+ {
+ ArgumentsPOJO1 pojo = new ArgumentsPOJO1(Call.STATIC_METHOD, -2041);
+ assertEquals(36, pojo.arg);
+
+ assertNotNull(ArgumentsAspect.arguments1);
+ assertSame(ArgumentsAspect.arguments1, ArgumentsAspect.arguments2);
+ assertEquals(1, ArgumentsAspect.arguments1.length);
+ assertEquals(-1020, ((Integer) ArgumentsAspect.arguments1[0]).intValue());
+ }
+
+ public void testConCallStaticPOJO2()
+ {
+ ArgumentsPOJO2 pojo = new ArgumentsPOJO2(Call.STATIC_METHOD, -8);
+ assertEquals(17, pojo.arg);
+
+ assertNotNull(ArgumentsAspect.arguments1);
+ assertNotSame(ArgumentsAspect.arguments1, ArgumentsAspect.arguments2);
+ assertEquals(1, ArgumentsAspect.arguments1.length);
+ assertEquals(-8, ((Integer) ArgumentsAspect.arguments1[0]).intValue());
+ assertEquals(1, ArgumentsAspect.arguments2.length);
+ assertEquals(18, ((Integer) ArgumentsAspect.arguments2[0]).intValue());
+ }
+
+ public void testMethodCallStaticPOJO1()
+ {
+ // intercepted twice by each advice: once for caller, once for called
+ assertEquals(36, pojo1.callPOJOStatic(123456));
+
+ assertNotNull(ArgumentsAspect.arguments1);
+ assertSame(ArgumentsAspect.arguments1, ArgumentsAspect.arguments2);
+ assertEquals(1, ArgumentsAspect.arguments1.length);
+ assertEquals(30864, ((Integer) ArgumentsAspect.arguments1[0]).intValue());
+ }
+
+ public void testMethodCallStaticPOJO2()
+ {
+ // intercepted twice by each advice: once for caller, once for called
+ assertEquals(17, pojo2.callPOJOStatic(99999));
+
+ assertNotNull(ArgumentsAspect.arguments1);
+ assertNotSame(ArgumentsAspect.arguments1, ArgumentsAspect.arguments2);
+ assertEquals(1, ArgumentsAspect.arguments1.length);
+ assertEquals(37, ((Integer) ArgumentsAspect.arguments1[0]).intValue());
+ assertEquals(1, ArgumentsAspect.arguments2.length);
+ assertEquals(18, ((Integer) ArgumentsAspect.arguments2[0]).intValue());
+ }
+}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list