This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-io.git
The following commit(s) were added to refs/heads/master by this push: new 41c73e3 Add tests. 41c73e3 is described below commit 41c73e390abb85f0c8bc4f3097056ddda246540b Author: Gary Gregory <gardgreg...@gmail.com> AuthorDate: Wed Apr 10 09:45:56 2019 -0400 Add tests. --- .../apache/commons/io/input/BoundedReaderTest.java | 65 +++++++++++++++++++--- 1 file changed, 58 insertions(+), 7 deletions(-) diff --git a/src/test/java/org/apache/commons/io/input/BoundedReaderTest.java b/src/test/java/org/apache/commons/io/input/BoundedReaderTest.java index 9a5b244..f40cbad 100644 --- a/src/test/java/org/apache/commons/io/input/BoundedReaderTest.java +++ b/src/test/java/org/apache/commons/io/input/BoundedReaderTest.java @@ -22,18 +22,28 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; import java.io.IOException; +import java.io.LineNumberReader; import java.io.Reader; import java.io.StringReader; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.concurrent.atomic.AtomicBoolean; +import org.apache.commons.io.FileUtils; import org.junit.Test; -public class BoundedReaderTest -{ - private final Reader sr = new BufferedReader( new StringReader( "01234567890" ) ); +public class BoundedReaderTest { + private static final String STRING_END_NO_EOL = "0\n1\n2"; - private final Reader shortReader = new BufferedReader( new StringReader( "01" ) ); + private static final String STRING_END_EOL = "0\n1\n2\n"; + + private final Reader sr = new BufferedReader(new StringReader("01234567890")); + + private final Reader shortReader = new BufferedReader(new StringReader("01")); @Test public void readTillEnd() throws IOException { @@ -101,7 +111,6 @@ public class BoundedReaderTest } } - @Test public void markResetWithMarkOutsideBoundedReaderMax() throws IOException { try (final BoundedReader mr = new BoundedReader(sr, 3)) { @@ -181,12 +190,54 @@ public class BoundedReaderTest assertTrue(closed.get()); } + private void testLineNumberReader(final Reader source) throws IOException { + try (LineNumberReader reader = new LineNumberReader(new BoundedReader(source, 10_000_000))) { + while (reader.readLine() != null) { + // noop + } + } + } + + @Test(timeout = 5000) + public void testLineNumberReaderAndStringReaderLastLineEolNo() throws IOException { + testLineNumberReader(new StringReader(STRING_END_NO_EOL)); + } + + @Test(timeout = 5000) + public void testLineNumberReaderAndStringReaderLastLineEolYes() throws IOException { + testLineNumberReader(new StringReader(STRING_END_EOL)); + } + + @Test(timeout = 5000) + public void testLineNumberReaderAndFileReaderLastLineEolNo() throws IOException { + testLineNumberReaderAndFileReaderLastLine(STRING_END_NO_EOL); + } + + @Test(timeout = 5000) + public void testLineNumberReaderAndFileReaderLastLineEolYes() throws IOException { + testLineNumberReaderAndFileReaderLastLine(STRING_END_EOL); + } + + public void testLineNumberReaderAndFileReaderLastLine(final String data) throws IOException { + final Path path = Files.createTempFile(getClass().getSimpleName(), ".txt"); + try { + final File file = path.toFile(); + FileUtils.write(file, data, StandardCharsets.ISO_8859_1); + try (FileReader source = new FileReader(file)) { + testLineNumberReader(source); + } + } finally { + Files.delete(path); + } + } + @Test(timeout = 5000) public void testReadBytesEOF() throws IOException { - final BoundedReader mr = new BoundedReader( sr, 3 ); - try ( BufferedReader br = new BufferedReader( mr ) ) { + final BoundedReader mr = new BoundedReader(sr, 3); + try (BufferedReader br = new BufferedReader(mr)) { br.readLine(); br.readLine(); } } + }