1   package com.imcode.util;
2   
3   import junit.framework.*;
4   import com.imcode.util.LineReader;
5   
6   import java.io.StringReader;
7   import java.io.IOException;
8   
9   public class LineReaderTest extends TestCase {
10  
11      public void testReadLine() throws IOException {
12          LineReader lineReader = createReader("foo\nbar\r\nbaz\r");
13          assertEquals(0, lineReader.getLinesRead());
14          assertEquals("foo\n", lineReader.readLine()) ;
15          assertEquals(1, lineReader.getLinesRead());
16          assertEquals("bar\r\n", lineReader.readLine()) ;
17          assertEquals(2, lineReader.getLinesRead());
18          assertEquals("baz\r", lineReader.readLine());
19          assertEquals(3, lineReader.getLinesRead());
20          assertNull(lineReader.readLine()) ;
21          assertEquals(3, lineReader.getLinesRead());
22          assertNull(lineReader.readLine()) ;
23          assertEquals(3, lineReader.getLinesRead());
24      }
25  
26      private LineReader createReader(String string) {
27          return new LineReader(new StringReader(string));
28      }
29  
30      public void testEmpty() throws IOException {
31          LineReader lineReader = createReader("") ;
32          assertNull(lineReader.readLine()) ;
33          assertNull(lineReader.readLine()) ;
34      }
35      
36      public void testMixedNewlines() throws IOException {
37          LineReader lineReader = createReader("\n\r\r\n\r\r\n\n\r\n");
38          assertEquals("\n", lineReader.readLine()) ;
39          assertEquals("\r", lineReader.readLine()) ;
40          assertEquals("\r\n", lineReader.readLine()) ;
41          assertEquals("\r", lineReader.readLine()) ;
42          assertEquals("\r\n", lineReader.readLine()) ;
43          assertEquals("\n", lineReader.readLine()) ;
44          assertEquals("\r\n", lineReader.readLine()) ;
45      }
46  }