@Test
public void testMoveDurableTreeList() {
TreeStructure treeStructure = new TreeStructure(null);
AbstractNode p0 = treeStructure.getRoot();
AbstractNode p1 = new AbstractNode(1, 0, 0, 0, 0, null);
AbstractNode p2 = new AbstractNode(2, 0, 0, 0, 0, null);
AbstractNode p3 = new AbstractNode(3, 0, 0, 0, 0, null);
AbstractNode p4 = new AbstractNode(4, 0, 0, 0, 0, null);
AbstractNode p5 = new AbstractNode(5, 0, 0, 0, 0, null);
AbstractNode p6 = new AbstractNode(6, 0, 0, 0, 0, null);
AbstractNode p7 = new AbstractNode(7, 0, 0, 0, 0, null);
treeStructure.insertAsChild(p1, p0);
treeStructure.insertAsChild(p2, p1);
treeStructure.insertAsChild(p4, p0);
treeStructure.insertAsChild(p5, p4);
treeStructure.insertAsChild(p6, p4);
treeStructure.insertAsChild(p3, p1);
treeStructure.insertAsChild(p7, p0);
//Test if ID = pre
for (Iterator<AbstractNode> itr = treeStructure.getTree().iterator(1); itr.hasNext();) {
AbstractNode n = itr.next();
assertEquals(n.getId(), n.getPre());
}
//Move p1 -> p4
treeStructure.move(p1, p4);
//Write expected array
int[] expected = new int[treeStructure.getTreeSize() - 1];
int index = 0;
for (Iterator<AbstractNode> itr = treeStructure.getTree().iterator(1); itr.hasNext();) {
AbstractNode n = itr.next();
expected[index] = n.getId();
}
treeStructure.move(p1, p0);
treeStructure.move(p1, p4);
int[] actual = new int[treeStructure.getTreeSize() - 1];
for (Iterator<AbstractNode> itr = treeStructure.getTree().iterator(1); itr.hasNext();) {
AbstractNode n = itr.next();
actual[index] = n.getId();
}
assertArrayEquals(expected, actual);
treeStructure.move(p3, p4);
treeStructure.move(p3, p5);