public void testTwoNodeChain() throws Exception {
Graph graph1 = new Graph("myTwoNodeGraph");
Node node1 = new Node("node1", "Op1");
Node node2 = new Node("node2", "Op2");
node2.addSource(new NodeSource("key1", "node1"));
graph1.addNode(node1);
graph1.addNode(node2);
Graph graph2 = doIO(graph1);
assertEquals(graph1.getId(), graph2.getId());
Node[] nodes = graph2.getNodes();
assertNotNull(nodes);
assertEquals(2, nodes.length);
assertNotNull(nodes[0]);
assertNotNull(nodes[1]);
Node node1Copy = graph2.getNode("node1");
Node node2Copy = graph2.getNode("node2");
assertSame(nodes[0], node1Copy);
assertSame(nodes[1], node2Copy);
NodeSource[] sources1 = node1Copy.getSources();
assertNotNull(sources1);
assertEquals(0, sources1.length);
NodeSource[] sources2 = node2Copy.getSources();
assertNotNull(sources2);
assertEquals(1, sources2.length);
NodeSource source2 = node2Copy.getSource(0);
assertSame(sources2[0], source2);
assertEquals("Op1", node1Copy.getOperatorName());
assertEquals("Op2", node2Copy.getOperatorName());
assertEquals("node1", source2.getSourceNodeId());
}