From 96d3564247e85275f7bedc19b9ab7527018cc87b Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Wed, 25 Jul 2012 08:55:28 +0100 Subject: [PATCH] BATCH-1878: add test cases for reading empty XML documents --- .../item/xml/StaxEventItemReaderTests.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/StaxEventItemReaderTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/StaxEventItemReaderTests.java index c10128dcf..eb7f4a12d 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/StaxEventItemReaderTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/StaxEventItemReaderTests.java @@ -47,6 +47,12 @@ public class StaxEventItemReaderTests { // test xml input private String xml = " testString "; + // test xml input + private String emptyXml = ""; + + // test xml input + private String missingXml = "foo"; + private String fooXml = " testString "; private String mixedXml = " testString "; @@ -176,6 +182,27 @@ public class StaxEventItemReaderTests { assertFalse(source.moveCursorToNextFragment(reader)); } + /** + * Empty document works OK. + */ + @Test + public void testMoveCursorToNextFragmentOnEmpty() throws XMLStreamException, FactoryConfigurationError, IOException { + Resource resource = new ByteArrayResource(emptyXml.getBytes()); + XMLEventReader reader = XMLInputFactory.newInstance().createXMLEventReader(resource.getInputStream()); + + assertFalse(source.moveCursorToNextFragment(reader)); + } + + /** + * Document with no fragments works OK. + */ + @Test + public void testMoveCursorToNextFragmentOnMissing() throws XMLStreamException, FactoryConfigurationError, IOException { + Resource resource = new ByteArrayResource(missingXml.getBytes()); + XMLEventReader reader = XMLInputFactory.newInstance().createXMLEventReader(resource.getInputStream()); + assertFalse(source.moveCursorToNextFragment(reader)); + } + /** * Save restart data and restore from it. */