KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > tests > jfun > yan > monitoring > MonitoredContainerTestCase


1 package tests.jfun.yan.monitoring;
2
3 import java.lang.reflect.Constructor JavaDoc;
4 import java.lang.reflect.Method JavaDoc;
5 import java.util.HashMap JavaDoc;
6
7 import jfun.yan.ComponentInstantiationException;
8 import jfun.yan.Components;
9 import jfun.yan.Container;
10 import jfun.yan.monitoring.ComponentMonitor;
11 import jfun.yan.monitoring.ComponentMonitorQueue;
12 import jfun.yan.monitoring.CtorMonitor;
13 import jfun.yan.monitoring.MethodMonitor;
14 import jfun.yan.monitoring.MonitoringContainer;
15 import jfun.yan.monitoring.Monitors;
16 import junit.framework.TestCase;
17
18 public class MonitoredContainerTestCase extends TestCase {
19   private static final Integer JavaDoc arg0 = new Integer JavaDoc(11);
20   private static final String JavaDoc arg1 = "hello";
21   private static final String JavaDoc arg2 = "world";
22   public void testMonitoringContainer(){
23     final BookmarkMonitor mon = new BookmarkMonitor(){
24       private void verifyCtorArgs(Object JavaDoc[] args){
25         assertEquals(2, args.length);
26         assertEquals(arg0, args[0]);
27         assertEquals(arg1, args[1]);
28       }
29       public void constructing(Constructor JavaDoc ctor, Object JavaDoc[] args) {
30         // TODO Auto-generated method stub
31
assertEquals(MonitoredObject.class, ctor.getDeclaringClass());
32         verifyCtorArgs(args);
33         super.constructing(ctor, args);
34       }
35       public void constructionFailed(Constructor JavaDoc ctor, Object JavaDoc[] args, Throwable JavaDoc e, long duration) {
36         // TODO Auto-generated method stub
37
assertEquals(MonitoredObject.class, ctor.getDeclaringClass());
38         verifyCtorArgs(args);
39         assertEquals(IllegalStateException JavaDoc.class, e.getClass());
40         super.constructionFailed(ctor, args, e, duration);
41       }
42       private void verifyFactory(Object JavaDoc obj, Method JavaDoc mtd, Object JavaDoc[] args){
43         assertNull(obj);
44         assertEquals("instance",mtd.getName());
45         assertEquals(3, args.length);
46         assertEquals(arg0, args[0]);
47         assertEquals(arg1, args[1]);
48         assertEquals(arg0, args[0]);
49         assertEquals(arg2, args[2]);
50       }
51       public void invoked(Object JavaDoc obj, Method JavaDoc mtd, Object JavaDoc[] args, Object JavaDoc result, long duration) {
52         // TODO Auto-generated method stub
53
verifyFactory(obj, mtd, args);
54         final MonitoredObject mo = (MonitoredObject)result;
55         assertEquals(arg0.intValue(), mo.getId());
56         assertEquals(arg1, mo.getName());
57         assertEquals(arg2, mo.getDesc());
58         super.invoked(obj, mtd, args, result, duration);
59       }
60       public void invoking(Object JavaDoc obj, Method JavaDoc mtd, Object JavaDoc[] args) {
61         // TODO Auto-generated method stub
62
verifyFactory(obj, mtd, args);
63         super.invoking(obj, mtd, args);
64       }
65     };
66     testMonitor(mon, mon);
67     final BookmarkMonitor mon1 = new BookmarkMonitor(){
68       private void verifyCtorArgs(Object JavaDoc[] args){
69         assertEquals(2, args.length);
70         assertEquals(arg0, args[0]);
71         assertEquals(arg1, args[1]);
72       }
73       public void constructing(Constructor JavaDoc ctor, Object JavaDoc[] args) {
74         // TODO Auto-generated method stub
75
assertEquals(MonitoredObject.class, ctor.getDeclaringClass());
76         verifyCtorArgs(args);
77         super.constructing(ctor, args);
78       }
79       public void constructionFailed(Constructor JavaDoc ctor, Object JavaDoc[] args, Throwable JavaDoc e, long duration) {
80         // TODO Auto-generated method stub
81
assertEquals(MonitoredObject.class, ctor.getDeclaringClass());
82         verifyCtorArgs(args);
83         assertEquals(IllegalStateException JavaDoc.class, e.getClass());
84         super.constructionFailed(ctor, args, e, duration);
85       }
86     };
87     final BookmarkMonitor mon2 = new BookmarkMonitor(){
88       private void verifyFactory(Object JavaDoc obj, Method JavaDoc mtd, Object JavaDoc[] args){
89         assertNull(obj);
90         assertEquals("instance",mtd.getName());
91         assertEquals(3, args.length);
92         assertEquals(arg0, args[0]);
93         assertEquals(arg1, args[1]);
94         assertEquals(arg0, args[0]);
95         assertEquals(arg2, args[2]);
96       }
97       public void invoked(Object JavaDoc obj, Method JavaDoc mtd, Object JavaDoc[] args, Object JavaDoc result, long duration) {
98         // TODO Auto-generated method stub
99
verifyFactory(obj, mtd, args);
100         final MonitoredObject mo = (MonitoredObject)result;
101         assertEquals(arg0.intValue(), mo.getId());
102         assertEquals(arg1, mo.getName());
103         assertEquals(arg2, mo.getDesc());
104         super.invoked(obj, mtd, args, result, duration);
105       }
106       public void invoking(Object JavaDoc obj, Method JavaDoc mtd, Object JavaDoc[] args) {
107         // TODO Auto-generated method stub
108
verifyFactory(obj, mtd, args);
109         super.invoking(obj, mtd, args);
110       }
111     };
112     final HashMap JavaDoc marks = new HashMap JavaDoc();
113     final CtorMonitor cmon = new CtorMonitor(){
114       public void constructed(Constructor JavaDoc ctor, Object JavaDoc[] args, Object JavaDoc instance, long duration) {
115         // TODO Auto-generated method stub
116
marks.put("constructed", "b");
117       }
118
119       public void constructing(Constructor JavaDoc ctor, Object JavaDoc[] args) {
120         // TODO Auto-generated method stub
121
marks.put("constructing", "a");
122       }
123
124       public void constructionFailed(Constructor JavaDoc ctor, Object JavaDoc[] args, Throwable JavaDoc e, long duration) {
125         // TODO Auto-generated method stub
126
marks.put("constructionFailed", "c");
127       }
128     };
129     final MethodMonitor mmon = new MethodMonitor(){
130
131       public void invocationFailed(Object JavaDoc obj, Method JavaDoc mtd, Object JavaDoc[] args, Throwable JavaDoc err, long duration) {
132         marks.put("invocationFailed", "z");
133         
134       }
135
136       public void invoked(Object JavaDoc obj, Method JavaDoc mtd, Object JavaDoc[] args, Object JavaDoc result, long duration) {
137         // TODO Auto-generated method stub
138
marks.put("invoked", "y");
139       }
140
141       public void invoking(Object JavaDoc obj, Method JavaDoc mtd, Object JavaDoc[] args) {
142         marks.put("invoking", "x");
143         
144       }
145       
146     };
147     final ComponentMonitor mm = new ComponentMonitorQueue()
148       .addCtorMonitor(mon1).addMethodMonitor(mon2)
149       .addCtorMonitor(cmon).addMethodMonitor(mmon)
150       .getComponentMonitor();
151     testMonitor(mon1, mm);
152     assertEquals("a", marks.get("constructing"));
153     assertEquals("c", marks.get("constructionFailed"));
154     assertNull(marks.get("constructed"));
155     assertEquals("x", marks.get("invoking"));
156     assertEquals("y", marks.get("invoked"));
157     assertNull(marks.get("invocationFailed"));
158     //testMonitor(mon2, mm);
159
verifyMonitor(mon1);
160     verifyMonitor(mon2);
161   }
162   private void verifyMonitor(BookmarkMonitor mon){
163     assertTrue(mon.isConstructing());
164     assertFalse(mon.isConstructed());
165     assertTrue(mon.isConstructionFailed());
166     assertTrue(mon.isInvoking());
167     assertTrue(mon.isInvoked());
168     assertFalse(mon.isInvocationFailed());
169   }
170   private void testMonitor(BookmarkMonitor mon, ComponentMonitor m){
171     final Container yan = new MonitoringContainer(m);
172     yan.registerValue(arg0);
173     yan.registerValue(arg1);
174     yan.registerConstructor("target", MonitoredObject.class);
175     try{
176       yan.getInstance("target");
177       fail("should have failed");
178     }
179     catch(ComponentInstantiationException e){
180     }
181     assertTrue(mon.isConstructing());
182     assertFalse(mon.isConstructed());
183     assertTrue(mon.isConstructionFailed());
184     assertFalse(mon.isInvoking());
185     yan.registerComponent("target",
186         new Monitors(m).static_method(MonitoredObject.class, "instance")
187         .withArgument(2, Components.value(arg2)));
188     yan.getInstance("target");
189     assertTrue(mon.isInvoking());
190     assertTrue(mon.isInvoked());
191     assertFalse(mon.isInvocationFailed());
192   }
193 }
194
Popular Tags