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();
         }
     }
+
 }

Reply via email to