KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > dynaop > PointcutsTest


1 package dynaop;
2
3 import java.io.IOException JavaDoc;
4 import java.io.Serializable JavaDoc;
5 import java.lang.reflect.Method JavaDoc;
6 import java.util.ArrayList JavaDoc;
7 import java.util.List JavaDoc;
8
9 import dynaop.util.Classes;
10
11 import junit.framework.TestCase;
12
13 /**
14  *
15  *
16  * @author Bob Lee (crazybob@crazybob.org)
17  */

18 public class PointcutsTest extends TestCase {
19
20     static ClassPointcut ALL_CLASSES = Pointcuts.ALL_CLASSES;
21     static ClassPointcut NO_CLASSES = Pointcuts.not(ALL_CLASSES);
22     static MethodPointcut ALL_METHODS = Pointcuts.ALL_METHODS;
23     static MethodPointcut NO_METHODS = Pointcuts.not(ALL_METHODS);
24     
25     public void testPackageName() {
26         assertTrue(Pointcuts.packageName("java.util").picks(ArrayList JavaDoc.class));
27         assertTrue(Pointcuts.packageName("java.lang").picks(String JavaDoc.class));
28     }
29     
30     public void testAllClasses() {
31         assertTrue(ALL_CLASSES.picks(getClass()));
32         assertTrue(ALL_CLASSES.picks(Object JavaDoc.class));
33         assertTrue(ALL_CLASSES.picks(Serializable JavaDoc.class));
34     }
35     
36     public void testMembersOf() throws Exception JavaDoc {
37         Method JavaDoc size = A.class.getMethod("size", null);
38         assertTrue(Pointcuts.membersOf(List JavaDoc.class).picks(size));
39         assertFalse(Pointcuts.membersOf(Object JavaDoc.class).picks(size));
40     }
41     
42     public void testClassName() throws Exception JavaDoc {
43         assertTrue(Pointcuts.className("java\\.lang\\..*").
44                 picks(Object JavaDoc.class));
45         assertTrue(Pointcuts.className(".*Pointcuts.*").
46                 picks(getClass()));
47         assertFalse(Pointcuts.className("java\\.lang\\..*").
48                 picks(getClass()));
49     }
50     
51     public void testInstanceOf() {
52         assertTrue(Pointcuts.instancesOf(List JavaDoc.class).picks(
53                 ArrayList JavaDoc.class));
54         assertFalse(Pointcuts.instancesOf(ArrayList JavaDoc.class).picks(
55                 List JavaDoc.class));
56     }
57
58     public void testClassSingleton() {
59         assertTrue(Pointcuts.singleton(List JavaDoc.class).picks(
60                 List JavaDoc.class));
61         assertFalse(Pointcuts.singleton(ArrayList JavaDoc.class).picks(
62                 List JavaDoc.class));
63     }
64     
65     public void testClassIntersection() {
66         assertTrue(Pointcuts.intersection(ALL_CLASSES, ALL_CLASSES).picks(null));
67         assertFalse(Pointcuts.intersection(NO_CLASSES, ALL_CLASSES).picks(null));
68         assertFalse(Pointcuts.intersection(NO_CLASSES, NO_CLASSES).picks(null));
69         assertFalse(Pointcuts.intersection(ALL_CLASSES, NO_CLASSES).picks(null));
70     }
71
72     public void testClassUnion() {
73         assertTrue(Pointcuts.union(ALL_CLASSES, ALL_CLASSES).picks(null));
74         assertTrue(Pointcuts.union(NO_CLASSES, ALL_CLASSES).picks(null));
75         assertFalse(Pointcuts.union(NO_CLASSES, NO_CLASSES).picks(null));
76         assertTrue(Pointcuts.union(ALL_CLASSES, NO_CLASSES).picks(null));
77     }
78     
79     public void testPropertyMethodPointcuts() throws Throwable JavaDoc {
80         assertTrue(Pointcuts.GET_METHODS.picks(
81             A.class.getMethod("getBoolean", null)));
82         assertFalse(Pointcuts.GET_METHODS.picks(
83                 A.class.getMethod("isBoolean", null)));
84         
85         assertTrue(Pointcuts.IS_METHODS.picks(
86             A.class.getMethod("isBoolean", null)));
87         assertFalse(Pointcuts.IS_METHODS.picks(
88             A.class.getMethod("getBoolean", null)));
89
90         assertTrue(Pointcuts.SET_METHODS.picks(
91             A.class.getMethod("setBoolean", new Class JavaDoc[] { boolean.class })));
92         assertFalse(Pointcuts.SET_METHODS.picks(
93             A.class.getMethod("issue", null)));
94     }
95     
96     public void testMethodSignature() throws Throwable JavaDoc {
97         assertTrue(Pointcuts.signature(".*setBoolean.*").picks(
98                 A.class.getMethod("setBoolean", new Class JavaDoc[] { boolean.class })));
99         assertTrue(Pointcuts.signature("String\\ .*toString\\(\\)").picks(
100                 Object JavaDoc.class.getMethod("toString", null)));
101     }
102     
103     public void testMethodSingleton() throws Throwable JavaDoc {
104         assertTrue(Pointcuts.singleton(Classes.TOSTRING_METHOD).picks(
105             Classes.TOSTRING_METHOD));
106         assertFalse(Pointcuts.singleton(Classes.TOSTRING_METHOD).picks(
107             Classes.HASHCODE_METHOD));
108     }
109     
110     public void testDeclaringClass() throws Throwable JavaDoc {
111         assertTrue(Pointcuts.declaringClass(ALL_CLASSES).picks(
112             Object JavaDoc.class.getMethod("hashCode", null)));
113         assertFalse(Pointcuts.declaringClass(NO_CLASSES).picks(
114             Object JavaDoc.class.getMethod("hashCode", null)));
115     }
116     
117     public void testMethodIntersection() {
118         assertTrue(Pointcuts.intersection(ALL_METHODS, ALL_METHODS).picks(null));
119         assertFalse(Pointcuts.intersection(NO_METHODS, ALL_METHODS).picks(null));
120         assertFalse(Pointcuts.intersection(ALL_METHODS, NO_METHODS).picks(null));
121         assertFalse(Pointcuts.intersection(NO_METHODS, NO_METHODS).picks(null));
122     }
123     
124     public void testMethodUnion() {
125         assertTrue(Pointcuts.union(ALL_METHODS, ALL_METHODS).picks(null));
126         assertTrue(Pointcuts.union(NO_METHODS, ALL_METHODS).picks(null));
127         assertTrue(Pointcuts.union(ALL_METHODS, NO_METHODS).picks(null));
128         assertFalse(Pointcuts.union(NO_METHODS, NO_METHODS).picks(null));
129     }
130     
131     public void testMethodToString() throws Throwable JavaDoc {
132         assertEquals("String toString()",
133             Pointcuts.methodToString(Object JavaDoc.class.getMethod("toString", null)));
134         assertEquals("boolean getBoolean()",
135             Pointcuts.methodToString(A.class.getMethod("getBoolean", null)));
136         assertEquals("void setBoolean(boolean)",
137             Pointcuts.methodToString(A.class.getMethod("setBoolean",
138                 new Class JavaDoc[] { boolean.class })));
139         assertEquals("java.util.List doSomething(Object, " +
140                 "String) throws java.io.IOException",
141             Pointcuts.methodToString(A.class.getMethod("doSomething",
142                 new Class JavaDoc[] { Object JavaDoc.class, String JavaDoc.class })));
143     }
144     
145     public interface A {
146         boolean getBoolean();
147         void setBoolean(boolean b);
148         Object JavaDoc getObject();
149         void setObject(Object JavaDoc o);
150         boolean isBoolean();
151         List JavaDoc doSomething(Object JavaDoc o, String JavaDoc s) throws IOException JavaDoc;
152         void issue();
153         int size();
154     }
155     
156 }
157
Popular Tags