/** * Cursor is moved to the end of the fragment as usually even * if nothing was read from the event reader after beginning * of fragment was marked. */ public void testMarkFragmentProcessedImmediatelyAfterMarkFragmentStart() throws Exception { moveCursorBeforeFragmentStart(); fragmentReader.markStartFragment(); fragmentReader.markFragmentProcessed(); fragmentReader.nextEvent(); // skip whitespace // the next element after fragment end is <misc2/> XMLEvent misc2 = fragmentReader.nextEvent(); assertTrue(EventHelper.startElementName(misc2).equals("misc2")); }
@Override protected void doClose() throws Exception { try { if (fragmentReader != null) { fragmentReader.close(); } if (inputStream != null) { inputStream.close(); } } finally { fragmentReader = null; inputStream = null; } }
fragmentReader.markStartFragment(); fragmentReader.markFragmentProcessed();
assertTrue(fragmentReader.hasNext()); moveCursorBeforeFragmentStart(); fragmentReader.markStartFragment(); // mark the fragment assertTrue(EventHelper.startElementName(eventReader.peek()).equals("fragment")); assertTrue(fragmentReader.peek().isStartDocument()); assertTrue(fragmentReader.nextEvent().isStartDocument()); assertTrue(EventHelper.startElementName(fragmentReader.nextEvent()).equals("fragment")); fragmentReader.nextEvent(); // skip it fragmentReader.nextEvent(); // skip it assertTrue(EventHelper.endElementName(fragmentReader.nextEvent()).equals("fragment")); assertTrue(fragmentReader.peek().isEndDocument()); assertTrue(fragmentReader.nextEvent().isEndDocument()); assertTrue(fragmentReader.peek() == null); assertFalse(fragmentReader.hasNext()); fragmentReader.nextEvent(); fail("nextEvent should simulate behavior as if document ended");
fragmentReader.markStartFragment(); fragmentReader.markFragmentProcessed();
/** * When fragment is marked as processed the cursor is moved after the end of * the fragment. */ public void testMarkFragmentProcessed() throws XMLStreamException { moveCursorBeforeFragmentStart(); fragmentReader.markStartFragment(); // mark the fragment start // read only one event to move inside the fragment XMLEvent startFragment = fragmentReader.nextEvent(); assertTrue(startFragment.isStartDocument()); fragmentReader.markFragmentProcessed(); // mark fragment as processed fragmentReader.nextEvent(); // skip whitespace // the next element after fragment end is <misc2/> XMLEvent misc2 = fragmentReader.nextEvent(); assertTrue(EventHelper.startElementName(misc2).equals("misc2")); }
@Override protected void doClose() throws Exception { try { if (fragmentReader != null) { fragmentReader.close(); } if (inputStream != null) { inputStream.close(); } } finally { fragmentReader = null; inputStream = null; } }