1 package com.opencsv.stream.reader;
2
3 import org.junit.jupiter.api.Test;
4
5 import java.io.BufferedReader;
6 import java.io.IOException;
7 import java.io.StringReader;
8
9 import static org.junit.jupiter.api.Assertions.assertEquals;
10
11 public class LineReaderTest {
12 private static final String ORIGINAL = "This is the original string\r\n";
13 private static final String WITH_CR = "This is the original string\r";
14 private static final String NO_CR = "This is the original string";
15 private static final String EMPTY_STRING = "";
16 private static final String NULL_STRING = null;
17
18 private LineReader createLineReaderforString(String s, boolean keepCR) {
19 StringReader sr = new StringReader(s);
20 return new LineReader(new BufferedReader(sr), keepCR);
21 }
22
23 @Test
24 public void lineReaderWillKeepCR() throws IOException {
25 LineReader keepCRReader = createLineReaderforString(ORIGINAL, true);
26 assertEquals(WITH_CR, keepCRReader.readLine());
27 }
28
29 @Test
30 public void lineReaderWillRemoveCR() throws IOException {
31 LineReader noCRReader = createLineReaderforString(ORIGINAL, false);
32 assertEquals(NO_CR, noCRReader.readLine());
33 }
34
35 @Test
36 public void lineReaderKeepingCRWillHandleStringWithNoLinefeed() throws IOException {
37 LineReader reader = createLineReaderforString(NO_CR, true);
38 assertEquals(NO_CR, reader.readLine());
39 }
40
41 @Test
42 public void lineReaderNoCRWillHandleStringWithNoLinefeed() throws IOException {
43 LineReader reader = createLineReaderforString(NO_CR, false);
44 assertEquals(NO_CR, reader.readLine());
45 }
46
47 @Test
48 public void lineReaderKeepingCRWillHandleEmptyString() throws IOException {
49 LineReader reader = createLineReaderforString(EMPTY_STRING, true);
50 assertEquals(NULL_STRING, reader.readLine());
51 }
52
53 @Test
54 public void lineReaderNoCRWillHandleEmptyString() throws IOException {
55 LineReader reader = createLineReaderforString(EMPTY_STRING, false);
56 assertEquals(NULL_STRING, reader.readLine());
57 }
58 }