You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2012/03/23 04:36:45 UTC
svn commit: r1304177 - in /commons/proper/io/trunk/src:
main/java/org/apache/commons/io/IOUtils.java
test/java/org/apache/commons/io/IOUtilsTestCase.java
Author: ggregory
Date: Fri Mar 23 03:36:44 2012
New Revision: 1304177
URL: http://svn.apache.org/viewvc?rev=1304177&view=rev
Log:
Add missing tests as discovered with Cobertura. Add a new method IOUTils.toBufferedReader(Reader).
Modified:
commons/proper/io/trunk/src/main/java/org/apache/commons/io/IOUtils.java
commons/proper/io/trunk/src/test/java/org/apache/commons/io/IOUtilsTestCase.java
Modified: commons/proper/io/trunk/src/main/java/org/apache/commons/io/IOUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/main/java/org/apache/commons/io/IOUtils.java?rev=1304177&r1=1304176&r2=1304177&view=diff
==============================================================================
--- commons/proper/io/trunk/src/main/java/org/apache/commons/io/IOUtils.java (original)
+++ commons/proper/io/trunk/src/main/java/org/apache/commons/io/IOUtils.java Fri Mar 23 03:36:44 2012
@@ -413,6 +413,19 @@ public class IOUtils {
return ByteArrayOutputStream.toBufferedInputStream(input);
}
+ /**
+ * Returns the given reader if it is a {@link BufferedReader}, otherwise creates a toBufferedReader for the given
+ * reader.
+ *
+ * @param reader
+ * the reader to wrap or return
+ * @return the given reader or a new {@link BufferedReader} for the given reader
+ * @since 2.2
+ */
+ public static BufferedReader toBufferedReader(Reader reader) {
+ return reader instanceof BufferedReader ? (BufferedReader) reader : new BufferedReader(reader);
+ }
+
// read toByteArray
//-----------------------------------------------------------------------
/**
@@ -833,7 +846,7 @@ public class IOUtils {
* @since 1.1
*/
public static List<String> readLines(Reader input) throws IOException {
- BufferedReader reader = new BufferedReader(input);
+ BufferedReader reader = toBufferedReader(input);
List<String> list = new ArrayList<String>();
String line = reader.readLine();
while (line != null) {
@@ -1858,12 +1871,9 @@ public class IOUtils {
*/
public static boolean contentEquals(Reader input1, Reader input2)
throws IOException {
- if (!(input1 instanceof BufferedReader)) {
- input1 = new BufferedReader(input1);
- }
- if (!(input2 instanceof BufferedReader)) {
- input2 = new BufferedReader(input2);
- }
+
+ input1 = toBufferedReader(input1);
+ input2 = toBufferedReader(input2);
int ch = input1.read();
while (EOF != ch) {
@@ -1894,18 +1904,8 @@ public class IOUtils {
*/
public static boolean contentEqualsIgnoreEOL(Reader input1, Reader input2)
throws IOException {
- BufferedReader br1;
- if (input1 instanceof BufferedReader) {
- br1 = (BufferedReader) input1;
- } else {
- br1 = new BufferedReader(input1);
- }
- BufferedReader br2;
- if (input2 instanceof BufferedReader) {
- br2 = (BufferedReader) input2;
- } else {
- br2 = new BufferedReader(input2);
- }
+ BufferedReader br1 = toBufferedReader(input1);
+ BufferedReader br2 = toBufferedReader(input2);
String line1 = br1.readLine();
String line2 = br2.readLine();
Modified: commons/proper/io/trunk/src/test/java/org/apache/commons/io/IOUtilsTestCase.java
URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/test/java/org/apache/commons/io/IOUtilsTestCase.java?rev=1304177&r1=1304176&r2=1304177&view=diff
==============================================================================
--- commons/proper/io/trunk/src/test/java/org/apache/commons/io/IOUtilsTestCase.java (original)
+++ commons/proper/io/trunk/src/test/java/org/apache/commons/io/IOUtilsTestCase.java Fri Mar 23 03:36:44 2012
@@ -16,6 +16,7 @@
*/
package org.apache.commons.io;
+import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.CharArrayReader;
@@ -724,6 +725,14 @@ public class IOUtilsTestCase extends Fil
assertTrue(IOUtils.contentEqualsIgnoreEOL(r1, r2));
}
+ public void testContentEqualsReaderReader() throws Exception {
+ assertTrue(IOUtils.contentEquals(new StringReader(""), new StringReader("")));
+ assertTrue(IOUtils.contentEquals(new BufferedReader(new StringReader("")), new BufferedReader(new StringReader(""))));
+ assertTrue(IOUtils.contentEquals(new StringReader("ABC"), new StringReader("ABC")));
+ assertFalse(IOUtils.contentEquals(new StringReader("ABCD"), new StringReader("ABC")));
+ assertFalse(IOUtils.contentEquals(new StringReader("ABC"), new StringReader("ABCD")));
+ }
+
public void testReadStream() throws Exception {
final int size = 1027;