@Test
public void copyConnections() {

    final List<GNode> nodes = createNodes();
    final List<GNode> copies = createNodes();
    connect(nodes.get(0).getConnectors().get(1), nodes.get(1).getConnectors().get(0));
    final Map<GNode, GNode> map = new HashMap<>();
    for (int i = 0; i < 3; i++) {
        map.put(nodes.get(i), copies.get(i));
    }
    final List<GConnection> connections = GModelUtils.copyConnections(map);
    assertTrue(connections.size() == 1);
    assertTrue(copies.get(0).getConnectors().get(1).getConnections().size() == 1);
    final GConnection newConnection = copies.get(0).getConnectors().get(1).getConnections().get(0);
    assertTrue(copies.get(1).getConnectors().get(0).getConnections().size() == 1);
    assertEquals(copies.get(1).getConnectors().get(0).getConnections().get(0), newConnection);
    assertEquals(copies.get(0).getConnectors().get(1), newConnection.getSource());
    assertEquals(copies.get(1).getConnectors().get(0), newConnection.getTarget());
    // Check no other connections have appeared.
    assertTrue(copies.get(0).getConnectors().get(0).getConnections().isEmpty());
    assertTrue(copies.get(1).getConnectors().get(1).getConnections().isEmpty());
    assertTrue(copies.get(2).getConnectors().get(0).getConnections().isEmpty());
    assertTrue(copies.get(2).getConnectors().get(1).getConnections().isEmpty());
}