1 package org.sapia.ubik.rmi.server; 2 3 import junit.framework.*; 4 5 import java.rmi.server.Unreferenced ; 6 7 8 16 public class ObjectTableTest extends TestCase { 17 public ObjectTableTest(String name) { 18 super(name); 19 } 20 21 public void testRegister() throws Exception { 22 OID oid = new OID(1); 23 Hub.serverRuntime.objectTable.clear(oid); 24 Hub.serverRuntime.objectTable.register(oid, "anObject"); 25 super.assertEquals(1, Hub.serverRuntime.objectTable.getRefCount(oid)); 26 } 27 28 public void testRemove() { 29 OID oid = new OID(1); 30 Hub.serverRuntime.objectTable.clear(oid); 31 Hub.serverRuntime.objectTable.register(oid, "anObject"); 32 super.assertTrue(Hub.serverRuntime.objectTable.remove("anObject")); 33 } 34 35 public void testRemoveForClassLoader() { 36 OID oid = new OID(1); 37 Hub.serverRuntime.objectTable.clear(oid); 38 39 TestRemoteObj obj = new TestRemoteObj(); 40 Hub.serverRuntime.objectTable.register(oid, obj); 41 super.assertTrue(Hub.serverRuntime.objectTable.remove( 42 obj.getClass().getClassLoader())); 43 } 44 45 public void testUnreferenced() { 46 OID oid = new OID(1); 47 Hub.serverRuntime.objectTable.clear(oid); 48 49 TestRemoteObj obj = new TestRemoteObj(); 50 Hub.serverRuntime.objectTable.register(oid, obj); 51 Hub.serverRuntime.objectTable.dereference(oid, 1); 52 super.assertTrue(obj.unreferenced); 53 } 54 55 public void testUnregister() throws Exception { 56 OID oid = new OID(1); 57 Hub.serverRuntime.objectTable.clear(oid); 58 Hub.serverRuntime.objectTable.register(oid, "anObject"); 59 super.assertEquals(Hub.serverRuntime.objectTable.getRefCount(oid), 1); 60 Hub.serverRuntime.objectTable.reference(oid); 61 super.assertEquals(Hub.serverRuntime.objectTable.getRefCount(oid), 2); 62 Hub.serverRuntime.objectTable.dereference(oid, 1); 63 super.assertEquals(Hub.serverRuntime.objectTable.getRefCount(oid), 1); 64 Hub.serverRuntime.objectTable.dereference(oid, 1); 65 super.assertEquals(Hub.serverRuntime.objectTable.getRefCount(oid), 0); 66 } 67 68 public void testGetObjectFor() throws Exception { 69 OID oid = new OID(1); 70 Hub.serverRuntime.objectTable.clear(oid); 71 72 try { 73 Hub.serverRuntime.objectTable.getObjectFor(oid); 74 throw new Exception ("instance should be null"); 75 } catch (NullPointerException e) { 76 } 78 79 Hub.serverRuntime.objectTable.register(oid, "anObject"); 80 Hub.serverRuntime.objectTable.getObjectFor(oid); 81 } 82 83 public static class TestRemoteObj implements Unreferenced { 84 boolean unreferenced; 85 86 public void unreferenced() { 87 unreferenced = true; 88 } 89 } 90 } 91 | Popular Tags |