Author: rwinston
Date: Wed Mar 10 12:50:57 2010
New Revision: 921330

URL: http://svn.apache.org/viewvc?rev=921330&view=rev
Log:
Make allowances for platform-specific line endings in unit tests

Modified:
    
commons/proper/net/branches/NET_2_0/src/main/java/org/apache/commons/net/io/DotTerminatedMessageReader.java
    
commons/proper/net/branches/NET_2_0/src/test/java/org/apache/commons/net/io/DotTerminatedMessageReaderTest.java

Modified: 
commons/proper/net/branches/NET_2_0/src/main/java/org/apache/commons/net/io/DotTerminatedMessageReader.java
URL: 
http://svn.apache.org/viewvc/commons/proper/net/branches/NET_2_0/src/main/java/org/apache/commons/net/io/DotTerminatedMessageReader.java?rev=921330&r1=921329&r2=921330&view=diff
==============================================================================
--- 
commons/proper/net/branches/NET_2_0/src/main/java/org/apache/commons/net/io/DotTerminatedMessageReader.java
 (original)
+++ 
commons/proper/net/branches/NET_2_0/src/main/java/org/apache/commons/net/io/DotTerminatedMessageReader.java
 Wed Mar 10 12:50:57 2010
@@ -38,14 +38,8 @@ import java.io.Reader;
  */
 public final class DotTerminatedMessageReader extends Reader
 {
-    private static final String LS;
-    private static final char[] LS_CHARS;
-
-    static
-    {
-        LS = System.getProperty("line.separator");
-        LS_CHARS = LS.toCharArray();
-    }
+    private static final String LS = System.getProperty("line.separator");
+    char[] LS_CHARS;
 
     private boolean atBeginning;
     private boolean eof;
@@ -61,6 +55,7 @@ public final class DotTerminatedMessageR
     public DotTerminatedMessageReader(Reader reader)
     {
         super(reader);
+        LS_CHARS = LS.toCharArray();
         internalBuffer = new char[LS_CHARS.length + 3];
         pos = internalBuffer.length;
         // Assumes input is at start of message

Modified: 
commons/proper/net/branches/NET_2_0/src/test/java/org/apache/commons/net/io/DotTerminatedMessageReaderTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/net/branches/NET_2_0/src/test/java/org/apache/commons/net/io/DotTerminatedMessageReaderTest.java?rev=921330&r1=921329&r2=921330&view=diff
==============================================================================
--- 
commons/proper/net/branches/NET_2_0/src/test/java/org/apache/commons/net/io/DotTerminatedMessageReaderTest.java
 (original)
+++ 
commons/proper/net/branches/NET_2_0/src/test/java/org/apache/commons/net/io/DotTerminatedMessageReaderTest.java
 Wed Mar 10 12:50:57 2010
@@ -27,17 +27,32 @@ public class DotTerminatedMessageReaderT
        private DotTerminatedMessageReader reader;
        private StringBuilder str = new StringBuilder();
        private char[] buf = new char[64];
+       final static String SEP = System.getProperty("line.separator");
        
-       public void testReadSimpleString() throws IOException {
+       public void testReadSimpleStringCrLfLineEnding() throws IOException {
                final String test = "Hello World!\r\n.\r\n";
                reader = new DotTerminatedMessageReader(new StringReader(test));
+               reader.LS_CHARS = new char[]{'\r','\n'};
                
                int read = 0;
                while ((read = reader.read(buf)) != -1) {
-                       str.append(buf, 0, read-1);
+                       str.append(buf, 0, read);
                }
                
-               assertEquals(str.toString(), "Hello World!");
+               assertEquals("Hello World!" + String.valueOf(reader.LS_CHARS), 
str.toString());
+       }
+       
+       public void testReadSimpleStringLfLineEnding() throws IOException {
+               final String test = "Hello World!\r\n.\r\n";
+               reader = new DotTerminatedMessageReader(new StringReader(test));
+               reader.LS_CHARS = new char[]{'\n'};
+               
+               int read = 0;
+               while ((read = reader.read(buf)) != -1) {
+                       str.append(buf, 0, read);
+               }
+               
+               assertEquals("Hello World!" + String.valueOf(reader.LS_CHARS), 
str.toString());
        }
        
        public void testEmbeddedNewlines() throws IOException {
@@ -46,10 +61,10 @@ public class DotTerminatedMessageReaderT
                
                int read = 0;
                while ((read = reader.read(buf)) != -1) {
-                       str.append(buf, 0, read-1);
+                       str.append(buf, 0, read);
                }
                
-               assertEquals(str.toString(), "Hello\nWorld\nA\rB");
+               assertEquals(str.toString(), "Hello\nWorld\nA\rB" + SEP);
        }
        
        public void testDoubleCrBeforeDot() throws IOException {
@@ -58,10 +73,10 @@ public class DotTerminatedMessageReaderT
                
                int read = 0;
                while ((read = reader.read(buf)) != -1) {
-                       str.append(buf, 0, read-1);
+                       str.append(buf, 0, read);
                }
                
-               assertEquals("Hello World!\r",str.toString());
+               assertEquals("Hello World!\r" + SEP,str.toString());
        }
 
 }


Reply via email to