@@ -71,12 +71,12 @@ public void testReadLookahead1() throws Exception {
7171 assertEquals ('3' , br .readAgain ());
7272
7373 assertEquals ('\n' , br .lookAhead ());
74- assertEquals (1 , br .getLineNumber ());
74+ assertEquals (1 , br .getLineNumber ()); // will need fixing for CSV-75
7575 assertEquals ('3' , br .readAgain ());
7676 assertEquals ('\n' , br .read ());
77- assertEquals (2 , br .getLineNumber ());
77+ assertEquals (2 , br .getLineNumber ()); // will need fixing for CSV-75
7878 assertEquals ('\n' , br .readAgain ());
79- assertEquals (2 , br .getLineNumber ());
79+ assertEquals (2 , br .getLineNumber ()); // will need fixing for CSV-75
8080
8181 assertEquals (ExtendedBufferedReader .END_OF_STREAM , br .lookAhead ());
8282 assertEquals ('\n' , br .readAgain ());
@@ -150,6 +150,39 @@ public void testReadLine() throws Exception {
150150 assertTrue (br .readLine () == null );
151151 }
152152
153+ /*
154+ * Test to illustrate https://issues.apache.org/jira/browse/CSV-75
155+ *
156+ * TODO fix checks when code is fixed
157+ */
158+ @ Test
159+ public void testReadChar () throws Exception {
160+ String LF ="\n " ; String CR ="\r " ; String CRLF =CR +LF ; String LFCR =LF +CR ;// easier to read the string below
161+ String test ="a" + LF + "b" + CR + "c" + LF + LF + "d" + CR + CR + "e" + LFCR + "f " + CRLF ;
162+ // EOL eol EOL EOL eol eol EOL+CR EOL
163+ // EOL = current EOL behaviour with read() methods
164+ // eol = additional behaviour with readLine()
165+ final int EOLct =5 ;
166+ final int EOLeolct =9 ;
167+ ExtendedBufferedReader br ;
168+
169+ br = getBufferedReader (test );
170+ assertEquals (0 , br .getLineNumber ());
171+ while (br .readLine ()!=null ) {}
172+ assertEquals (EOLeolct , br .getLineNumber ());
173+
174+ br = getBufferedReader (test );
175+ assertEquals (0 , br .getLineNumber ());
176+ while (br .read ()!=-1 ) {}
177+ assertEquals (EOLct , br .getLineNumber ()); // will need fixing for CSV-75
178+
179+ br = getBufferedReader (test );
180+ assertEquals (0 , br .getLineNumber ());
181+ char [] buff = new char [10 ];
182+ while (br .read (buff ,0 , 3 )!=-1 ) {}
183+ assertEquals (EOLct , br .getLineNumber ()); // will need fixing for CSV-75
184+ }
185+
153186 private ExtendedBufferedReader getBufferedReader (String s ) {
154187 return new ExtendedBufferedReader (new StringReader (s ));
155188 }
0 commit comments