KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tc > objectserver > managedobject > ManagedObjectSerializerTest


1 /*
2  * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
3  */

4 package com.tc.objectserver.managedobject;
5
6 import com.tc.io.serializer.TCObjectInputStream;
7 import com.tc.io.serializer.TCObjectOutputStream;
8 import com.tc.object.ObjectID;
9 import com.tc.object.tx.TransactionID;
10 import com.tc.objectserver.api.ObjectInstanceMonitor;
11 import com.tc.objectserver.core.api.ManagedObject;
12 import com.tc.objectserver.core.api.TestDNA;
13 import com.tc.objectserver.core.api.TestDNACursor;
14 import com.tc.objectserver.impl.ObjectInstanceMonitorImpl;
15 import com.tc.objectserver.persistence.impl.InMemoryPersistor;
16
17 import java.io.ByteArrayInputStream JavaDoc;
18 import java.io.ByteArrayOutputStream JavaDoc;
19
20 import junit.framework.TestCase;
21
22 public class ManagedObjectSerializerTest extends TestCase {
23
24   private ObjectID id;
25   private ManagedObjectStateSerializer stateSerializer;
26
27   public void test() throws Exception JavaDoc {
28     ManagedObjectStateFactory.disableSingleton(true);
29     ManagedObjectStateFactory.createInstance(new NullManagedObjectChangeListenerProvider(), new InMemoryPersistor());
30
31     stateSerializer = new ManagedObjectStateSerializer();
32     id = new ObjectID(1);
33
34     ManagedObjectSerializer mos = new ManagedObjectSerializer(stateSerializer);
35     ManagedObjectImpl mo = new ManagedObjectImpl(id);
36     assertTrue(mo.isDirty());
37     assertTrue(mo.isNew());
38     TestDNA dna = newDNA(1);
39     ObjectInstanceMonitor imo = new ObjectInstanceMonitorImpl();
40     mo.apply(dna, new TransactionID(1), new BackReferences(), imo);
41     assertFalse(mo.isNew());
42
43     ByteArrayOutputStream JavaDoc baout = new ByteArrayOutputStream JavaDoc();
44     TCObjectOutputStream out = new TCObjectOutputStream(baout);
45     mos.serializeTo(mo, out);
46     out.flush();
47     ManagedObject mo2 = (ManagedObject) mos.deserializeFrom(new TCObjectInputStream(new ByteArrayInputStream JavaDoc(baout
48         .toByteArray())));
49
50     assertFalse(mo2.isDirty());
51     assertFalse(mo2.isNew());
52     mo.setIsDirty(false);
53     assertNotSame(mo, mo2);
54     assertTrue(mo.isEqual(mo2));
55   }
56
57   private TestDNA newDNA(int fieldSetCount) {
58     TestDNACursor cursor = new TestDNACursor();
59     for (int i = 0; i < fieldSetCount; i++) {
60       cursor.addPhysicalAction("refField" + i, new ObjectID(1));
61       cursor.addPhysicalAction("booleanField" + i, new Boolean JavaDoc(true));
62       cursor.addPhysicalAction("byteField" + i, new Byte JavaDoc((byte) 1));
63       cursor.addPhysicalAction("characterField" + i, new Character JavaDoc('c'));
64       cursor.addPhysicalAction("doubleField" + i, new Double JavaDoc(100.001d));
65       cursor.addPhysicalAction("floatField" + i, new Float JavaDoc(100.001f));
66       cursor.addPhysicalAction("integerField" + i, new Integer JavaDoc(100));
67       cursor.addPhysicalAction("longField" + i, new Long JavaDoc(100));
68       cursor.addPhysicalAction("stringField" + i, "Some nice string field" + i);
69       cursor.addPhysicalAction("shortField" + i, new Short JavaDoc((short) 1));
70     }
71     TestDNA dna = new TestDNA(cursor);
72     return dna;
73   }
74 }
75
Popular Tags