KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tirsen > nanning > samples > rmi > RemoteTest


1 package com.tirsen.nanning.samples.rmi;
2
3 import com.tirsen.nanning.Aspects;
4 import com.tirsen.nanning.attribute.AbstractAttributesTest;
5 import com.tirsen.nanning.config.AspectSystem;
6 import com.tirsen.nanning.config.FindTargetMixinAspect;
7 import com.tirsen.nanning.samples.prevayler.Identity;
8
9 public class RemoteTest extends AbstractAttributesTest {
10     private int port = 12346;
11     private SocketRemoteCallServer remoteCallServer;
12
13     protected void setUp() throws Exception JavaDoc {
14         super.setUp();
15     }
16
17     protected void tearDown() throws Exception JavaDoc {
18         super.tearDown();
19         if (remoteCallServer != null) {
20             remoteCallServer.stop();
21         }
22     }
23
24     public void testStartStop() {
25         remoteCallServer = new SocketRemoteCallServer();
26         remoteCallServer.setPort(port);
27         assertFalse(remoteCallServer.isStarted());
28         remoteCallServer.stop();
29         assertFalse(remoteCallServer.isStarted());
30         remoteCallServer.start();
31         assertTrue(remoteCallServer.isStarted());
32     }
33
34     public void testObjectTable() {
35         Object JavaDoc o = new Object JavaDoc();
36         ObjectTable objectTable = new ObjectTable();
37         Object JavaDoc id = objectTable.register(o);
38         assertTrue(objectTable.isIDRegistered(id));
39         assertSame(o, objectTable.getFromID(id));
40         assertSame(id, objectTable.register(o));
41     }
42
43     public void testObjectTableCleanup() throws Exception JavaDoc {
44         Object JavaDoc o = new Object JavaDoc();
45         ObjectTable objectTable = new ObjectTable(200);
46         Object JavaDoc id = objectTable.register(o);
47         Thread.sleep(50);
48         assertTrue(objectTable.isIDRegistered(id));
49         Thread.sleep(151);
50         assertFalse(objectTable.isIDRegistered(id));
51     }
52
53     public void testRemoteMarshallerWithLocalObject() {
54         RemoteMarshaller clientMarshaller = RemoteMarshaller.createClientSideMarshaller();
55         MyStatefulServiceImpl o = new MyStatefulServiceImpl();
56         Object JavaDoc id = clientMarshaller.registerID(o);
57         assertSame(o, clientMarshaller.unmarshal(new Identity(o.getClass(), id)));
58     }
59
60     public void testIdentityEqualsAndHashCode() {
61         Identity identity1 = new Identity(Object JavaDoc.class, new Long JavaDoc(1));
62         assertEquals(identity1, identity1);
63         assertFalse(identity1.equals(""));
64         assertFalse(identity1.equals(new Identity(Object JavaDoc.class, new Long JavaDoc(2))));
65
66         Identity identity2 = new Identity(Object JavaDoc.class, new Long JavaDoc(1));
67         assertEquals(identity1, identity2);
68         assertEquals(identity2, identity1);
69         assertEquals(identity1.hashCode(), identity2.hashCode());
70     }
71
72     public void testRemoteMarshallerWithRemoteObject() {
73         AspectSystem aspectSystem = new AspectSystem();
74         aspectSystem.addAspect(new FindTargetMixinAspect());
75         Object JavaDoc service = aspectSystem.newInstance(MyStatefulService.class);
76
77         RemoteMarshaller clientMarshaller = RemoteMarshaller.createClientSideMarshaller();
78         Identity identity = new RemoteIdentity(Aspects.getAspectInstance(service).getClassIdentifier(), new Long JavaDoc(System.currentTimeMillis()), new SocketConnectionManager("localhost", port));
79         Object JavaDoc stub = clientMarshaller.unmarshal(identity);
80         assertNotNull(stub);
81         assertTrue(stub instanceof MyStatefulService);
82         assertTrue(Aspects.getAspectInstance(stub).getTargets()[0] instanceof Identity);
83         assertEquals(identity, Aspects.getAspectInstance(stub).getTargets()[0]);
84         assertEquals(identity, clientMarshaller.marshal(stub));
85     }
86 }
87
Popular Tags