KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > ch > ethz > prose > crosscut > MethodArgumentsTest


1 package ch.ethz.prose.crosscut;
2
3 import junit.framework.TestCase;
4 import ch.ethz.prose.*;
5 import ch.ethz.prose.filter.*;
6
7 /**
8  * Cross-cut methods with different arguments.
9  *
10  * @author Johann Gyger
11  */

12 public class MethodArgumentsTest extends TestCase {
13
14       protected static boolean crosscutted;
15
16       public MethodArgumentsTest(String JavaDoc name) {
17         super(name);
18       }
19
20       protected void setUp() throws SystemStartupException {
21         ProseSystem.startup();
22       }
23
24       protected void tearDown() throws SystemTeardownException {
25         ProseSystem.teardown();
26       }
27
28       public void myMethod() {}
29       public void myMethodByte(byte arg1, byte arg2) {}
30       public void myMethodShort(short arg1, short arg2) {}
31       public void myMethodInt(int arg1, int arg2) {}
32       public void myMethodLong(long arg1, long arg2) {}
33       public void myMethodFloat(float arg1, float arg2) {}
34       public void myMethodDouble(double arg1, double arg2) {}
35       public void myMethodReference(Object JavaDoc arg1, Object JavaDoc arg2) {}
36       public void myMethodMixed(
37         byte arg1,
38         short arg2,
39         int arg3,
40         long arg4,
41         float arg5,
42         double arg6,
43         Object JavaDoc arg7,
44         byte arg8,
45         short arg9,
46         int arg10,
47         long arg11,
48         float arg12,
49         double arg13,
50         Object JavaDoc arg14) {
51         }
52
53       public void test_010_interface() {
54         ProseSystem.getAspectManager().insert(new MethodAspect());
55         MyInterface mi = new MyClass();
56
57         crosscutted = false;
58         myMethod();
59         assertTrue("Method invocation is cross-cutted (empty)", crosscutted);
60
61         crosscutted = false;
62         byte b = 0;
63         myMethodByte(b, b);
64         assertTrue("Method invocation is cross-cutted (byte)", crosscutted);
65
66         crosscutted = false;
67         short s = 0;
68         myMethodShort(s, s);
69         assertTrue("Method invocation is cross-cutted (short)", crosscutted);
70
71         crosscutted = false;
72         myMethodInt(0, 0);
73         assertTrue("Method invocation is cross-cutted (int)", crosscutted);
74
75         crosscutted = false;
76         myMethodLong(0, 0);
77         assertTrue("Method invocation is cross-cutted (long)", crosscutted);
78
79         crosscutted = false;
80         myMethodFloat(0, 0);
81         assertTrue("Method invocation is cross-cutted (float)", crosscutted);
82
83         crosscutted = false;
84         myMethodDouble(0, 0);
85         assertTrue("Method invocation is cross-cutted (double)", crosscutted);
86
87         crosscutted = false;
88         myMethodReference(null, null);
89         assertTrue("Method invocation is cross-cutted (ref)", crosscutted);
90
91         crosscutted = false;
92         myMethodMixed(b, s, 0, 0, 0, 0, null, b, s, 0, 0, 0, 0, null);
93         assertTrue("Method invocation is cross-cutted (mixed)", crosscutted);
94       }
95
96       public interface MyInterface {
97         public void myMethod();
98       }
99
100       public class MyClass implements MyInterface {
101         public void myMethod() {};
102       }
103
104       public class MethodAspect extends DefaultAspect {
105         public Crosscut c = new MethodCut() {
106           public void METHOD_ARGS(MethodArgumentsTest c, REST r) {
107             crosscutted = true;
108           }
109           protected PointCutter pointCutter() {
110             return Within.method("myMethod.*").AND(Executions.before());
111           }
112           protected Class JavaDoc[] potentialCrosscutClasses() {
113             return new Class JavaDoc[] { MethodArgumentsTest.class };
114           }
115         };
116       };
117 }
Popular Tags