KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jgrapht > graph > SerializationTest


1 /* ==========================================
2  * JGraphT : a free Java graph-theory library
3  * ==========================================
4  *
5  * Project Info: http://jgrapht.sourceforge.net/
6  * Project Creator: Barak Naveh (http://sourceforge.net/users/barak_naveh)
7  *
8  * (C) Copyright 2003-2006, by Barak Naveh and Contributors.
9  *
10  * This library is free software; you can redistribute it and/or modify it
11  * under the terms of the GNU Lesser General Public License as published by
12  * the Free Software Foundation; either version 2.1 of the License, or
13  * (at your option) any later version.
14  *
15  * This library is distributed in the hope that it will be useful, but
16  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
17  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
18  * License for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public License
21  * along with this library; if not, write to the Free Software Foundation,
22  * Inc.,
23  * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
24  */

25 /* --------------
26  * SerializationTest.java
27  * --------------
28  * (C) Copyright 2003-2006, by John V. Sichi and Contributors.
29  *
30  * Original Author: John V. Sichi
31  * Contributor(s): -
32  *
33  * $Id: SerializationTest.java 504 2006-07-03 02:37:26Z perfecthash $
34  *
35  * Changes
36  * -------
37  * 06-Oct-2003 : Initial revision (JVS);
38  *
39  */

40 package org.jgrapht.graph;
41
42 import java.io.*;
43
44 import org.jgrapht.*;
45
46
47 /**
48  * SerializationTest tests serialization and deserialization of JGraphT objects.
49  *
50  * @author John V. Sichi
51  */

52 public class SerializationTest
53     extends EnhancedTestCase
54 {
55
56     //~ Instance fields -------------------------------------------------------
57

58     private String JavaDoc v1 = "v1";
59     private String JavaDoc v2 = "v2";
60     private String JavaDoc v3 = "v3";
61
62     //~ Constructors ----------------------------------------------------------
63

64     /**
65      * @see junit.framework.TestCase#TestCase(java.lang.String)
66      */

67     public SerializationTest(String JavaDoc name)
68     {
69         super(name);
70     }
71
72     //~ Methods ---------------------------------------------------------------
73

74     /**
75      * Tests serialization of DirectedMultigraph.
76      */

77     @SuppressWarnings JavaDoc("unchecked")
78     public void testDirectedMultigraph()
79         throws Exception JavaDoc
80     {
81         DirectedMultigraph<String JavaDoc, DefaultEdge> graph =
82             new DirectedMultigraph<String JavaDoc, DefaultEdge>(
83                 DefaultEdge.class);
84         graph.addVertex(v1);
85         graph.addVertex(v2);
86         graph.addVertex(v3);
87         graph.addEdge(v1, v2);
88         graph.addEdge(v2, v3);
89         graph.addEdge(v2, v3);
90
91         graph =
92             (DirectedMultigraph<String JavaDoc, DefaultEdge>) serializeAndDeserialize(
93                 graph);
94         assertTrue(graph.containsVertex(v1));
95         assertTrue(graph.containsVertex(v2));
96         assertTrue(graph.containsVertex(v3));
97         assertTrue(graph.containsEdge(v1, v2));
98         assertTrue(graph.containsEdge(v2, v3));
99         assertEquals(1, graph.edgesOf(v1).size());
100         assertEquals(3, graph.edgesOf(v2).size());
101         assertEquals(2, graph.edgesOf(v3).size());
102     }
103
104     private Object JavaDoc serializeAndDeserialize(Object JavaDoc obj)
105         throws Exception JavaDoc
106     {
107         ByteArrayOutputStream bout = new ByteArrayOutputStream();
108         ObjectOutputStream out = new ObjectOutputStream(bout);
109
110         out.writeObject(obj);
111         out.flush();
112
113         ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());
114         ObjectInputStream in = new ObjectInputStream(bin);
115
116         obj = in.readObject();
117         return obj;
118     }
119 }
120
121 // End SerializationTest.java
122
Popular Tags