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.*; public class TreeNodeStateTest { @Test public void batchNodeTest() throws Exception { TreeNodeState treeNodeState = new TreeNodeState(); assertNull(treeNodeState.getCurrentNode()); NodeBeginsParsingEvent batchNodeBegin = TestEventHelper.createBatchBeginEvent(1); treeNodeState.handleNodeBegin(batchNodeBegin); assertNotNull(treeNodeState.getCurrentNode()); assertEquals(treeNodeState.getCurrentNode().getName(), batchNodeBegin.getName()); assertEquals(treeNodeState.getCurrentNode().getType(), NodeType.BATCH); assertNull(treeNodeState.getCurrentNode().getParent()); } @Test public void workshiftNodeTest() { TreeNodeState treeNodeState = new TreeNodeState(); treeNodeState.handleNodeBegin(new NodeBeginsParsingEvent("B400022028241-RT1")); NodeBeginsParsingEvent workNodeBegin = new NodeBeginsParsingEvent("WORKSHIFT-ISO-TARGET"); treeNodeState.handleNodeBegin(workNodeBegin); assertNotNull(treeNodeState.getCurrentNode()); assertEquals(treeNodeState.getCurrentNode().getName(), workNodeBegin.getName()); assertEquals(treeNodeState.getCurrentNode().getType(), NodeType.WORKSHIFT_ISO_TARGET); assertNotNull(treeNodeState.getCurrentNode().getParent()); assertEquals(treeNodeState.getCurrentNode().getParent().getType(), NodeType.BATCH); } @Test public void filmNodeTest() { TreeNodeState treeNodeState = new TreeNodeState(); 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); } @Test public void unmatchedTest() { TreeNodeState treeNodeState = new TreeNodeState(); treeNodeState.handleNodeBegin(new NodeBeginsParsingEvent("B400022028241-RT1")); treeNodeState.handleNodeBegin(new NodeBeginsParsingEvent("400022028241-14")); NodeBeginsParsingEvent unmatchNodeBegin = new NodeBeginsParsingEvent("UNMATCHED"); treeNodeState.handleNodeBegin(unmatchNodeBegin); assertNotNull(treeNodeState.getCurrentNode()); assertEquals(treeNodeState.getCurrentNode().getType(), NodeType.UNMATCHED); assertEquals(treeNodeState.getCurrentNode().getName(), unmatchNodeBegin.getName()); assertNotNull(treeNodeState.getCurrentNode().getParent()); assertEquals(treeNodeState.getCurrentNode().getParent().getType(), NodeType.FILM); } @Test public void filmIsoTargetTest() { TreeNodeState treeNodeState = new TreeNodeState(); treeNodeState.handleNodeBegin(new NodeBeginsParsingEvent("B400022028241-RT1")); treeNodeState.handleNodeBegin(new NodeBeginsParsingEvent("400022028241-14")); NodeBeginsParsingEvent unmatchNodeBegin = new NodeBeginsParsingEvent("FILM-ISO-target"); treeNodeState.handleNodeBegin(unmatchNodeBegin); assertNotNull(treeNodeState.getCurrentNode()); assertEquals(treeNodeState.getCurrentNode().getType(), NodeType.FILM_ISO_TARGET); assertEquals(treeNodeState.getCurrentNode().getName(), unmatchNodeBegin.getName()); assertNotNull(treeNodeState.getCurrentNode().getParent()); assertEquals(treeNodeState.getCurrentNode().getParent().getType(), NodeType.FILM); } @Test public void udgaveTest() { TreeNodeState treeNodeState = new TreeNodeState(); treeNodeState.handleNodeBegin(new NodeBeginsParsingEvent("B400022028241-RT1")); treeNodeState.handleNodeBegin(new NodeBeginsParsingEvent("400022028241-14")); NodeBeginsParsingEvent udgaveNodeBegin = new NodeBeginsParsingEvent("1860-10-18-01"); treeNodeState.handleNodeBegin(udgaveNodeBegin); assertNotNull(treeNodeState.getCurrentNode()); assertEquals(treeNodeState.getCurrentNode().getType(), NodeType.EDITION); assertEquals(treeNodeState.getCurrentNode().getName(), udgaveNodeBegin.getName()); assertNotNull(treeNodeState.getCurrentNode().getParent()); assertEquals(treeNodeState.getCurrentNode().getParent().getType(), NodeType.FILM); treeNodeState.handleNodeEnd(new NodeEndParsingEvent("")); assertEquals(treeNodeState.getCurrentNode().getType(), NodeType.FILM); NodeBeginsParsingEvent nextUdgaveNodeBegin = new NodeBeginsParsingEvent("1860-10-18-02"); treeNodeState.handleNodeBegin(nextUdgaveNodeBegin); assertNotNull(treeNodeState.getCurrentNode()); assertEquals(treeNodeState.getCurrentNode().getType(), NodeType.EDITION); assertEquals(treeNodeState.getCurrentNode().getName(), nextUdgaveNodeBegin.getName()); assertNotNull(treeNodeState.getCurrentNode().getParent()); assertEquals(treeNodeState.getCurrentNode().getParent().getType(), NodeType.FILM); } @Test public void pageTest() { TreeNodeState treeNodeState = new TreeNodeState(); treeNodeState.handleNodeBegin(new NodeBeginsParsingEvent("B400022028241-RT1")); treeNodeState.handleNodeBegin(new NodeBeginsParsingEvent("400022028241-14")); treeNodeState.handleNodeBegin(new NodeBeginsParsingEvent("1860-10-18-01")); NodeBeginsParsingEvent pageNodeBegin = new NodeBeginsParsingEvent("PAPERISSUE-PAGE1"); treeNodeState.handleNodeBegin(pageNodeBegin); assertNotNull(treeNodeState.getCurrentNode()); assertEquals(treeNodeState.getCurrentNode().getType(), NodeType.PAGE); assertEquals(treeNodeState.getCurrentNode().getName(), pageNodeBegin.getName()); assertNotNull(treeNodeState.getCurrentNode().getParent()); assertEquals(treeNodeState.getCurrentNode().getParent().getType(), NodeType.EDITION); treeNodeState.handleNodeEnd(new NodeEndParsingEvent("")); assertEquals(treeNodeState.getCurrentNode().getType(), NodeType.EDITION); NodeBeginsParsingEvent nextPageNodeBegin = new NodeBeginsParsingEvent("PAPERISSUE-PAGE2"); treeNodeState.handleNodeBegin(nextPageNodeBegin); assertNotNull(treeNodeState.getCurrentNode()); assertEquals(treeNodeState.getCurrentNode().getType(), NodeType.PAGE); assertEquals(treeNodeState.getCurrentNode().getName(), nextPageNodeBegin.getName()); assertNotNull(treeNodeState.getCurrentNode().getParent()); assertEquals(treeNodeState.getCurrentNode().getParent().getType(), NodeType.EDITION); } @Test public void pageImageTest() { TreeNodeState treeNodeState = new TreeNodeState(); treeNodeState.handleNodeBegin(new NodeBeginsParsingEvent("B400022028241-RT1")); treeNodeState.handleNodeBegin(new NodeBeginsParsingEvent("400022028241-14")); treeNodeState.handleNodeBegin(new NodeBeginsParsingEvent("1860-10-18-01")); treeNodeState.handleNodeBegin(new NodeBeginsParsingEvent("PAPERISSUE-PAGE1")); NodeBeginsParsingEvent pageImageNodeBegin = new NodeBeginsParsingEvent("JP2-PAGE_IMAGE"); treeNodeState.handleNodeBegin(pageImageNodeBegin); assertNotNull(treeNodeState.getCurrentNode()); assertEquals(treeNodeState.getCurrentNode().getType(), NodeType.PAGE_IMAGE); assertEquals(treeNodeState.getCurrentNode().getName(), pageImageNodeBegin.getName()); assertNotNull(treeNodeState.getCurrentNode().getParent()); assertEquals(treeNodeState.getCurrentNode().getParent().getType(), NodeType.PAGE); } @Test public void nodeEndTest() { TreeNodeState treeNodeState = new TreeNodeState(); treeNodeState.handleNodeBegin(new NodeBeginsParsingEvent("B400022028241-RT1")); treeNodeState.handleNodeBegin(new NodeBeginsParsingEvent("400022028241-14")); NodeBeginsParsingEvent udgaveNodeBegin = new NodeBeginsParsingEvent("1860-10-18-01"); treeNodeState.handleNodeBegin(udgaveNodeBegin); assertNotNull(treeNodeState.getCurrentNode()); assertEquals(treeNodeState.getCurrentNode().getType(), NodeType.EDITION); treeNodeState.handleNodeEnd(new NodeEndParsingEvent(udgaveNodeBegin.getName())); assertEquals(treeNodeState.getCurrentNode().getType(), NodeType.FILM); treeNodeState.handleNodeEnd(new NodeEndParsingEvent("")); assertEquals(treeNodeState.getCurrentNode().getType(), NodeType.BATCH); treeNodeState.handleFinish(); } }