View Javadoc
1   /*
2    * Copyright (c) 2008, The JUNG Authors
3    *
4    * All rights reserved.
5    *
6    * This software is open-source under the BSD license; see either
7    * "license.txt" or
8    * https://github.com/jrtom/jung/blob/master/LICENSE for a description.
9    */
10  
11  package edu.uci.ics.jung.io.graphml.parser;
12  
13  import org.junit.Assert;
14  import org.junit.Test;
15  
16  import edu.uci.ics.jung.io.GraphIOException;
17  import edu.uci.ics.jung.io.graphml.EdgeMetadata;
18  
19  public class TestEdgeElementParser extends AbstractParserTest {
20  
21      @Test(expected= GraphIOException.class)
22      public void testNoSource() throws Exception {
23          
24          String xml = 
25              "<edge target=\"2\"/>";
26          
27          readObject(xml);
28      }
29  
30      @Test(expected= GraphIOException.class)
31      public void testNoTarget() throws Exception {
32          
33          String xml = 
34              "<edge source=\"2\"/>";
35          
36          readObject(xml);
37      }
38  
39      @Test
40      public void testId() throws Exception {
41          
42          String xml = 
43              "<edge source=\"1\" target=\"2\" id=\"e1\"/>";
44          
45          EdgeMetadata edge = (EdgeMetadata) readObject(xml);
46          Assert.assertNotNull(edge);
47          Assert.assertEquals("e1", edge.getId());
48          Assert.assertEquals(null, edge.getDescription());
49          Assert.assertEquals("1", edge.getSource());
50          Assert.assertEquals("2", edge.getTarget());
51          Assert.assertEquals(null, edge.isDirected());
52          Assert.assertEquals(null, edge.getSourcePort());
53          Assert.assertEquals(null, edge.getTargetPort());
54      }
55  
56      @Test
57      public void testDirectedTrue() throws Exception {
58          
59          String xml = 
60              "<edge source=\"1\" target=\"2\" directed=\"true\"/>";
61          
62          EdgeMetadata edge = (EdgeMetadata) readObject(xml);
63          Assert.assertNotNull(edge);
64          Assert.assertEquals(null, edge.getId());
65          Assert.assertEquals(null, edge.getDescription());
66          Assert.assertEquals("1", edge.getSource());
67          Assert.assertEquals("2", edge.getTarget());
68          Assert.assertEquals(true, edge.isDirected());
69          Assert.assertEquals(null, edge.getSourcePort());
70          Assert.assertEquals(null, edge.getTargetPort());
71      }
72  
73      @Test
74      public void testDirectedFalse() throws Exception {
75          
76          String xml = 
77              "<edge source=\"1\" target=\"2\" directed=\"false\"/>";
78          
79          EdgeMetadata edge = (EdgeMetadata) readObject(xml);
80          Assert.assertNotNull(edge);
81          Assert.assertEquals(null, edge.getId());
82          Assert.assertEquals(null, edge.getDescription());
83          Assert.assertEquals("1", edge.getSource());
84          Assert.assertEquals("2", edge.getTarget());
85          Assert.assertEquals(false, edge.isDirected());
86          Assert.assertEquals(null, edge.getSourcePort());
87          Assert.assertEquals(null, edge.getTargetPort());
88      }
89  
90      @Test
91      public void testSourceTargetPorts() throws Exception {
92          
93          String xml = 
94              "<edge source=\"1\" target=\"2\" sourceport=\"a\" targetport=\"b\"/>";
95          
96          EdgeMetadata edge = (EdgeMetadata) readObject(xml);
97          Assert.assertNotNull(edge);
98          Assert.assertEquals(null, edge.getId());
99          Assert.assertEquals(null, edge.getDescription());
100         Assert.assertEquals("1", edge.getSource());
101         Assert.assertEquals("2", edge.getTarget());
102         Assert.assertEquals(null, edge.isDirected());
103         Assert.assertEquals("a", edge.getSourcePort());
104         Assert.assertEquals("b", edge.getTargetPort());
105     }
106 
107     @Test
108     public void testDesc() throws Exception {
109         
110         String xml = 
111             "<edge source=\"1\" target=\"2\">" +
112                 "<desc>hello world</desc>" +
113             "</edge>";
114         
115         EdgeMetadata edge = (EdgeMetadata) readObject(xml);
116         Assert.assertNotNull(edge);
117         Assert.assertEquals(null, edge.getId());
118         Assert.assertEquals("hello world", edge.getDescription());
119         Assert.assertEquals("1", edge.getSource());
120         Assert.assertEquals("2", edge.getTarget());
121         Assert.assertEquals(null, edge.isDirected());
122         Assert.assertEquals(null, edge.getSourcePort());
123         Assert.assertEquals(null, edge.getTargetPort());
124     }
125 
126     @Test
127     public void testUserAttributes() throws Exception {
128         
129         String xml = 
130             "<edge source=\"1\" target=\"2\" bob=\"abc123\">" +         
131             "</edge>";
132         
133         EdgeMetadata edge = (EdgeMetadata) readObject(xml);
134         Assert.assertNotNull(edge);
135         Assert.assertEquals(null, edge.getId());
136         Assert.assertEquals(null, edge.getDescription());
137         Assert.assertEquals("1", edge.getSource());
138         Assert.assertEquals("2", edge.getTarget());
139         Assert.assertEquals(null, edge.isDirected());
140         Assert.assertEquals(null, edge.getSourcePort());
141         Assert.assertEquals(null, edge.getTargetPort());
142         Assert.assertEquals(1, edge.getProperties().size());
143         Assert.assertEquals("abc123", edge.getProperty("bob"));
144     }
145 
146     @Test
147     public void testData() throws Exception {
148         
149         String xml = 
150             "<edge source=\"1\" target=\"2\">" +
151                 "<data key=\"d1\">value1</data>" +
152                 "<data key=\"d2\">value2</data>" +
153             "</edge>";
154         
155         EdgeMetadata edge = (EdgeMetadata) readObject(xml);
156         Assert.assertNotNull(edge);
157         Assert.assertEquals(null, edge.getId());
158         Assert.assertEquals(null, edge.getDescription());
159         Assert.assertEquals("1", edge.getSource());
160         Assert.assertEquals("2", edge.getTarget());
161         Assert.assertEquals(null, edge.isDirected());
162         Assert.assertEquals(null, edge.getSourcePort());
163         Assert.assertEquals(null, edge.getTargetPort());
164         Assert.assertEquals(2, edge.getProperties().size());
165         Assert.assertEquals("value1", edge.getProperty("d1"));
166         Assert.assertEquals("value2", edge.getProperty("d2"));
167     }
168 }