1 25 41 package org.jgrapht.graph; 42 43 import junit.framework.*; 44 45 import org.jgrapht.*; 46 import org.jgrapht.event.*; 47 48 49 55 public class ListenableGraphTest 56 extends TestCase 57 { 58 59 61 DefaultEdge lastAddedEdge; 62 DefaultEdge lastRemovedEdge; 63 Object lastAddedVertex; 64 Object lastRemovedVertex; 65 66 68 71 public ListenableGraphTest(String name) 72 { 73 super(name); 74 } 75 76 78 81 public void testGraphListener() 82 { 83 init(); 84 85 ListenableGraph<Object , DefaultEdge> g = 86 new ListenableUndirectedGraph<Object , DefaultEdge>( 87 DefaultEdge.class); 88 GraphListener<Object , DefaultEdge> listener = new MyGraphListner(); 89 g.addGraphListener(listener); 90 91 String v1 = "v1"; 92 String v2 = "v2"; 93 94 g.addVertex(v1); 96 assertEquals(v1, lastAddedVertex); 97 assertEquals(null, lastRemovedVertex); 98 99 init(); 100 g.removeVertex(v1); 101 assertEquals(v1, lastRemovedVertex); 102 assertEquals(null, lastAddedVertex); 103 104 g.addVertex(v1); 106 g.addVertex(v2); 107 108 init(); 109 110 DefaultEdge e = g.addEdge(v1, v2); 111 assertEquals(e, lastAddedEdge); 112 assertEquals(null, lastRemovedEdge); 113 114 init(); 115 assertTrue(g.removeEdge(e)); 116 assertEquals(e, lastRemovedEdge); 117 assertEquals(null, lastAddedEdge); 118 119 g.removeVertex(v1); 120 g.removeVertex(v2); 121 122 g.removeGraphListener(listener); 126 init(); 127 g.addVertex(v1); 128 g.addVertex(v2); 129 e = g.addEdge(v1, v2); 130 g.removeEdge(e); 131 132 assertEquals(null, lastAddedEdge); 133 assertEquals(null, lastAddedVertex); 134 assertEquals(null, lastRemovedEdge); 135 assertEquals(null, lastRemovedVertex); 136 } 137 138 141 public void testVertexSetListener() 142 { 143 init(); 144 145 ListenableGraph<Object , DefaultEdge> g = 146 new ListenableUndirectedGraph<Object , DefaultEdge>( 147 DefaultEdge.class); 148 VertexSetListener<Object > listener = new MyGraphListner(); 149 g.addVertexSetListener(listener); 150 151 String v1 = "v1"; 152 String v2 = "v2"; 153 154 g.addVertex(v1); 156 assertEquals(v1, lastAddedVertex); 157 assertEquals(null, lastRemovedVertex); 158 159 init(); 160 g.removeVertex(v1); 161 assertEquals(v1, lastRemovedVertex); 162 assertEquals(null, lastAddedVertex); 163 164 g.addVertex(v1); 166 g.addVertex(v2); 167 168 init(); 169 170 DefaultEdge e = g.addEdge(v1, v2); 171 assertEquals(null, lastAddedEdge); 172 assertEquals(null, lastRemovedEdge); 173 174 init(); 175 assertTrue(g.removeEdge(e)); 176 assertEquals(null, lastRemovedEdge); 177 assertEquals(null, lastAddedEdge); 178 179 g.removeVertex(v1); 180 g.removeVertex(v2); 181 182 g.removeVertexSetListener(listener); 186 init(); 187 g.addVertex(v1); 188 g.addVertex(v2); 189 e = g.addEdge(v1, v2); 190 g.removeEdge(e); 191 192 assertEquals(null, lastAddedEdge); 193 assertEquals(null, lastAddedVertex); 194 assertEquals(null, lastRemovedEdge); 195 assertEquals(null, lastRemovedVertex); 196 } 197 198 private void init() 199 { 200 lastAddedEdge = null; 201 lastAddedVertex = null; 202 lastRemovedEdge = null; 203 lastRemovedVertex = null; 204 } 205 206 208 214 private class MyGraphListner 215 implements GraphListener<Object , DefaultEdge> 216 { 217 220 public void edgeAdded(GraphEdgeChangeEvent<Object , DefaultEdge> e) 221 { 222 lastAddedEdge = e.getEdge(); 223 } 224 225 228 public void edgeRemoved(GraphEdgeChangeEvent<Object , DefaultEdge> e) 229 { 230 lastRemovedEdge = e.getEdge(); 231 } 232 233 236 public void vertexAdded(GraphVertexChangeEvent<Object > e) 237 { 238 lastAddedVertex = e.getVertex(); 239 } 240 241 244 public void vertexRemoved(GraphVertexChangeEvent<Object > e) 245 { 246 lastRemovedVertex = e.getVertex(); 247 } 248 } 249 } 250 | Popular Tags |