|
11 | 11 | import overflowdb.testdomains.simple.TestNode;
|
12 | 12 |
|
13 | 13 | import java.util.ArrayList;
|
| 14 | +import java.util.Iterator; |
14 | 15 | import java.util.Map;
|
15 | 16 |
|
16 | 17 | import static org.junit.Assert.assertEquals;
|
@@ -90,4 +91,36 @@ public void shouldDeepCloneGraph() {
|
90 | 91 | assertEquals(graph.edgeCount(), 1);
|
91 | 92 | }
|
92 | 93 |
|
| 94 | + @Test |
| 95 | + public void shouldCorrectlyCloneEdgeOrders() { |
| 96 | + Config config = Config.withoutOverflow(); |
| 97 | + Graph graph = SimpleDomain.newGraph(config); |
| 98 | + Node n0 = graph.addNode(TestNode.LABEL, TestNode.STRING_PROPERTY, "n0"); |
| 99 | + Node n1 = graph.addNode(TestNode.LABEL, TestNode.STRING_PROPERTY, "n1"); |
| 100 | + Node n2 = graph.addNode(TestNode.LABEL, TestNode.STRING_PROPERTY, "n2"); |
| 101 | + n1.addEdge(TestEdge.LABEL, n2); |
| 102 | + n0.addEdge(TestEdge.LABEL, n2); |
| 103 | + |
| 104 | + // copy graph |
| 105 | + Graph graph2 = SimpleDomain.newGraph(config); |
| 106 | + graph.copyTo(graph2); |
| 107 | + |
| 108 | + //verify order of in-edges on n1 |
| 109 | + Iterator<Node> orig = n2.in(); |
| 110 | + assertEquals(orig.next().property(TestNode.STRING_PROPERTY), "n1"); |
| 111 | + assertEquals(orig.next().property(TestNode.STRING_PROPERTY), "n0"); |
| 112 | + assertEquals(orig.hasNext(), false); |
| 113 | + |
| 114 | + //same for the copy |
| 115 | + |
| 116 | + Node n0Copy = graph2.node(n0.id()); |
| 117 | + Node n1Copy = graph2.node(n1.id()); |
| 118 | + Node n2Copy = graph2.node(n2.id()); |
| 119 | + Iterator<Node> copy = n2Copy.in(); |
| 120 | + assertEquals(copy.next().property(TestNode.STRING_PROPERTY), "n1"); |
| 121 | + assertEquals(copy.next().property(TestNode.STRING_PROPERTY), "n0"); |
| 122 | + assertEquals(copy.hasNext(), false); |
| 123 | + } |
| 124 | + |
| 125 | + |
93 | 126 | }
|
0 commit comments