KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > oddjob > jmx > server > ServerContextTest


1 /*
2  * (c) Rob Gordon 2005
3  */

4 package org.oddjob.jmx.server;
5
6 import junit.framework.TestCase;
7
8 import org.oddjob.arooa.registry.Address;
9 import org.oddjob.arooa.registry.ComponentRegistry;
10 import org.oddjob.arooa.registry.Path;
11 import org.oddjob.arooa.registry.ServerId;
12
13 public class ServerContextTest extends TestCase {
14
15     public void testSimple() {
16         Object JavaDoc comp = new Object JavaDoc();
17         ComponentRegistry cr1 = new ComponentRegistry();
18         cr1.register("foo", comp);
19         
20         ServerModel sm = new ServerModel("//test", null, null);
21         sm.setComponentRegistry(cr1);
22         sm.setRoot(comp);
23         
24         ServerContext sc1 = new ServerContext(sm);
25         Object JavaDoc found1 = sc1.getComponentRegistry().objectForAddress(
26                 new Address(new ServerId("//test"), new Path("foo")));
27         assertNotNull(found1);
28         
29     }
30
31     // registry when the top node is a registry owner.
32
public void testTopChildRegistry() {
33         Object JavaDoc client = new Object JavaDoc();
34         ComponentRegistry cr1 = new ComponentRegistry();
35         cr1.register("client", client);
36         ComponentRegistry cr2 = new ComponentRegistry();
37         cr1.addChild(cr2, client);
38         Object JavaDoc node = new Object JavaDoc();
39         cr2.register("foo", node);
40         
41         ServerModel sm = new ServerModel("//test", null, null);
42         sm.setComponentRegistry(cr1);
43         sm.setRoot(client);
44         
45         ServerContext sc1 = new ServerContext(sm);
46         Object JavaDoc found1 = sc1.getComponentRegistry()
47             .objectForAddress(new Address(
48                         new ServerId("//test"), new Path("client")));
49         assertNotNull(found1);
50         
51         ServerContext sc2 = new ServerContext(node, sc1);
52         Object JavaDoc found2 = sc2.getComponentRegistry()
53             .objectForAddress(new Address(
54                         new ServerId("//test"), new Path("client/foo")));
55         assertNotNull(found2);
56         
57         assertEquals(true, sc1.isRegistryOwner());
58     }
59
60     // registry when the second node is a registry owner.
61
public void testChildRegistry() {
62         Object JavaDoc top = new Object JavaDoc();
63         ComponentRegistry cr1 = new ComponentRegistry();
64         cr1.register("top", top);
65         Object JavaDoc node = new Object JavaDoc();
66         cr1.register("foo", node);
67         
68         ComponentRegistry cr2 = new ComponentRegistry();
69         cr1.addChild(cr2, node);
70         
71         ServerModel sm = new ServerModel("//test", null, null);
72         sm.setComponentRegistry(cr1);
73         sm.setRoot(top);
74         
75         ServerContext sc1 = new ServerContext(sm);
76         Object JavaDoc found1 = sc1.getComponentRegistry().objectForAddress(
77                 new Address(new ServerId("//test"), new Path("top")));
78         assertNotNull(found1);
79         
80         ServerContext sc2 = new ServerContext(node, sc1);
81         Object JavaDoc found2 = sc2.getComponentRegistry().objectForAddress(
82                 new Address(new ServerId("//test"), new Path("foo")));
83         assertNotNull(found2);
84         // sc2 is only a parent when it needs to be
85
new ServerContext(new Object JavaDoc(), sc2);
86         
87         assertEquals(true, sc2.isRegistryOwner());
88     }
89
90     /**
91      * check id is removed when a child is removed.
92      */

93     public void testRemoveNode() {
94         ComponentRegistry cr1 = new ComponentRegistry();
95         
96         Object JavaDoc top = new Object JavaDoc();
97         cr1.register("top", top);
98         Object JavaDoc node = new Object JavaDoc();
99         cr1.register("foo", node);
100                 
101         ServerModel sm = new ServerModel("//test", null, null);
102         sm.setComponentRegistry(cr1);
103         sm.setRoot(top);
104         
105         ServerContext sc1 = new ServerContext(sm);
106         
107         ServerContext sc2 = new ServerContext(node, sc1);
108         Object JavaDoc found1 = sc2.getComponentRegistry().objectForAddress(
109                 new Address(new ServerId("//test"), new Path("foo")));
110         assertNotNull(found1);
111         
112         sc1.removeChild(node);
113         Object JavaDoc found2 = sc2.getComponentRegistry().objectForAddress(
114                 new Address(new ServerId("//test"), new Path("foo")));
115         assertNull(found2);
116     }
117         
118     /**
119      * check child registry is removed.
120      */

121     public void testRemoveRegistry() {
122         Object JavaDoc top = new Object JavaDoc();
123         ComponentRegistry cr1 = new ComponentRegistry();
124         cr1.register("top", top);
125         
126         ComponentRegistry cr2 = new ComponentRegistry();
127         Object JavaDoc node = new Object JavaDoc();
128         cr2.register("foo", node);
129         
130         cr1.addChild(cr2, top);
131         
132         ServerModel sm = new ServerModel("//test", null, null);
133         sm.setComponentRegistry(cr1);
134         sm.setRoot(top);
135         
136         ServerContext sc1 = new ServerContext(sm);
137         
138         ServerContext sc2 = new ServerContext(node, sc1);
139         assertTrue(sc1.isRegistryOwner());
140
141         cr1.removeChild(top);
142         
143         sc1.removeChild(node);
144         
145         assertFalse(sc1.isRegistryOwner());
146         assertNull(sc1.getComponentRegistry().registryOwnedBy(top));
147     }
148         
149 }
150
Popular Tags