package dk.statsbiblioteket.newspaper.treenode;
import dk.statsbiblioteket.medieplatform.autonomous.iterator.common.NodeBeginsParsingEvent;
import dk.statsbiblioteket.medieplatform.autonomous.iterator.common.NodeEndParsingEvent;
import org.testng.annotations.Test;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;
/**
*
*/
public class TreeNodeStateWithChildrenTest {
/**
* Test that a node can remember its children.
*/
@Test
public void testGetChildren() {
TreeNodeStateWithChildren treeNodeState = new TreeNodeStateWithChildren();
treeNodeState.handleNodeBegin(new NodeBeginsParsingEvent("B400022028241-RT1"));
NodeBeginsParsingEvent workNodeBegin = new NodeBeginsParsingEvent("400022028241-14");
treeNodeState.handleNodeBegin(workNodeBegin);
assertNotNull(treeNodeState.getCurrentNode());
assertEquals(treeNodeState.getCurrentNode().getName(), workNodeBegin.getName());
assertEquals(treeNodeState.getCurrentNode().getType(), NodeType.FILM);
assertNotNull(treeNodeState.getCurrentNode().getParent());
assertEquals(treeNodeState.getCurrentNode().getParent().getType(), NodeType.BATCH);
assertTrue(treeNodeState.getCurrentNode() instanceof TreeNodeWithChildren);
assertTrue(treeNodeState.getPreviousNode() instanceof TreeNodeWithChildren);
treeNodeState.handleNodeEnd(new NodeEndParsingEvent("400022028241-14"));
assertEquals(((TreeNodeWithChildren) treeNodeState.getCurrentNode()).getChildren().size(), 1);
}
}