KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > sapia > ubik > rmi > server > ObjectTableTest


1 package org.sapia.ubik.rmi.server;
2
3 import junit.framework.*;
4
5 import java.rmi.server.Unreferenced JavaDoc;
6
7
8 /**
9  * @author Yanick Duchesne
10  * <dl>
11  * <dt><b>Copyright:</b><dd>Copyright &#169; 2002-2003 <a HREF="http://www.sapia-oss.org">Sapia Open Source Software</a>. All Rights Reserved.</dd></dt>
12  * <dt><b>License:</b><dd>Read the license.txt file of the jar or visit the
13  * <a HREF="http://www.sapia-oss.org/license.html">license page</a> at the Sapia OSS web site</dd></dt>
14  * </dl>
15  */

16 public class ObjectTableTest extends TestCase {
17   public ObjectTableTest(String JavaDoc name) {
18     super(name);
19   }
20
21   public void testRegister() throws Exception JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc("instance should be null");
75     } catch (NullPointerException JavaDoc e) {
76       //ok
77
}
78
79     Hub.serverRuntime.objectTable.register(oid, "anObject");
80     Hub.serverRuntime.objectTable.getObjectFor(oid);
81   }
82
83   public static class TestRemoteObj implements Unreferenced JavaDoc {
84     boolean unreferenced;
85
86     public void unreferenced() {
87       unreferenced = true;
88     }
89   }
90 }
91
Popular Tags