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 }