1 25 40 package org.jgrapht.graph; 41 42 import java.io.*; 43 44 import org.jgrapht.*; 45 46 47 52 public class SerializationTest 53 extends EnhancedTestCase 54 { 55 56 58 private String v1 = "v1"; 59 private String v2 = "v2"; 60 private String v3 = "v3"; 61 62 64 67 public SerializationTest(String name) 68 { 69 super(name); 70 } 71 72 74 77 @SuppressWarnings ("unchecked") 78 public void testDirectedMultigraph() 79 throws Exception 80 { 81 DirectedMultigraph<String , DefaultEdge> graph = 82 new DirectedMultigraph<String , 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 , 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 serializeAndDeserialize(Object obj) 105 throws Exception 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 | Popular Tags |