KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tc > util > SerializationTestUtil


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.util;
5
6 import com.tc.logging.TCLogger;
7 import com.tc.logging.TCLogging;
8
9 import java.io.ByteArrayInputStream JavaDoc;
10 import java.io.ByteArrayOutputStream JavaDoc;
11 import java.io.ObjectInputStream JavaDoc;
12 import java.io.ObjectOutputStream JavaDoc;
13
14 import junit.framework.Assert;
15
16 /**
17  * Utilities for use in testing serialization.
18  */

19 public class SerializationTestUtil {
20
21   private static final TCLogger logger = TCLogging.getLogger(SerializationTestUtil.class);
22
23   public static void testSerialization(Object JavaDoc o) throws Exception JavaDoc {
24     testSerialization(o, false, false);
25   }
26
27   public static void testSerializationWithRestore(Object JavaDoc o) throws Exception JavaDoc {
28     testSerialization(o, true, false);
29   }
30
31   public static void testSerializationAndEquals(Object JavaDoc o) throws Exception JavaDoc {
32     testSerialization(o, true, true);
33   }
34
35   public static void testSerialization(Object JavaDoc o, boolean checkRestore, boolean checkEquals) throws Exception JavaDoc {
36     Assert.assertNotNull(o);
37
38     ByteArrayOutputStream JavaDoc baos = new ByteArrayOutputStream JavaDoc();
39     ObjectOutputStream JavaDoc oos = new ObjectOutputStream JavaDoc(baos);
40
41     oos.writeObject(o);
42     oos.flush();
43
44     logger.debug("Object " + o + " of class " + o.getClass() + " serialized to " + baos.toByteArray().length
45                  + " bytes.");
46
47     if (checkRestore) {
48       ByteArrayInputStream JavaDoc bais = new ByteArrayInputStream JavaDoc(baos.toByteArray());
49       ObjectInputStream JavaDoc ois = new ObjectInputStream JavaDoc(bais);
50
51       Object JavaDoc restored = ois.readObject();
52
53       if (checkEquals) {
54         Assert.assertEquals(o, restored);
55         Assert.assertEquals(restored, o);
56
57         Assert.assertEquals(o.hashCode(), restored.hashCode());
58
59         Assert.assertNotSame(o, restored);
60       }
61     }
62   }
63
64 }
Popular Tags