1 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 comp = new Object (); 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 found1 = sc1.getComponentRegistry().objectForAddress( 26 new Address(new ServerId("//test"), new Path("foo"))); 27 assertNotNull(found1); 28 29 } 30 31 public void testTopChildRegistry() { 33 Object client = new Object (); 34 ComponentRegistry cr1 = new ComponentRegistry(); 35 cr1.register("client", client); 36 ComponentRegistry cr2 = new ComponentRegistry(); 37 cr1.addChild(cr2, client); 38 Object node = new Object (); 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 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 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 public void testChildRegistry() { 62 Object top = new Object (); 63 ComponentRegistry cr1 = new ComponentRegistry(); 64 cr1.register("top", top); 65 Object node = new Object (); 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 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 found2 = sc2.getComponentRegistry().objectForAddress( 82 new Address(new ServerId("//test"), new Path("foo"))); 83 assertNotNull(found2); 84 new ServerContext(new Object (), sc2); 86 87 assertEquals(true, sc2.isRegistryOwner()); 88 } 89 90 93 public void testRemoveNode() { 94 ComponentRegistry cr1 = new ComponentRegistry(); 95 96 Object top = new Object (); 97 cr1.register("top", top); 98 Object node = new Object (); 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 found1 = sc2.getComponentRegistry().objectForAddress( 109 new Address(new ServerId("//test"), new Path("foo"))); 110 assertNotNull(found1); 111 112 sc1.removeChild(node); 113 Object found2 = sc2.getComponentRegistry().objectForAddress( 114 new Address(new ServerId("//test"), new Path("foo"))); 115 assertNull(found2); 116 } 117 118 121 public void testRemoveRegistry() { 122 Object top = new Object (); 123 ComponentRegistry cr1 = new ComponentRegistry(); 124 cr1.register("top", top); 125 126 ComponentRegistry cr2 = new ComponentRegistry(); 127 Object node = new Object (); 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 |