Skip to content

Commit d2c8f90

Browse files
committed
Improved test coverage
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/csv/trunk@1300516 13f79535-47bb-0310-9956-ffa450edef68
1 parent 637426c commit d2c8f90

3 files changed

Lines changed: 41 additions & 26 deletions

File tree

src/main/java/org/apache/commons/csv/UnicodeUnescapeReader.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,7 @@ public int read(char[] cbuf, int off, int len) throws IOException {
5050

5151
if (c == '\\') {
5252
int l = reader.read(sequence);
53-
if (l == sequence.length
54-
&& 'u' == sequence[0]
55-
&& isHexadecimal(sequence[1])
56-
&& isHexadecimal(sequence[2])
57-
&& isHexadecimal(sequence[3])
58-
&& isHexadecimal(sequence[4])) {
53+
if (l == sequence.length && isUnicodeSequence(sequence)) {
5954
// unicode escape found
6055
c = Integer.parseInt(new String(sequence, 1, 4), 16);
6156

@@ -71,7 +66,15 @@ && isHexadecimal(sequence[4])) {
7166

7267
return count;
7368
}
74-
69+
70+
private boolean isUnicodeSequence(char[] sequence) {
71+
return 'u' == sequence[0]
72+
&& isHexadecimal(sequence[1])
73+
&& isHexadecimal(sequence[2])
74+
&& isHexadecimal(sequence[3])
75+
&& isHexadecimal(sequence[4]);
76+
}
77+
7578
private boolean isHexadecimal(char c) {
7679
return ('0' <= c && c <= '9') || ('a' <= c && c <= 'f') || ('A' <= c && c <= 'F');
7780
}

src/test/java/org/apache/commons/csv/CharBufferTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,4 +164,16 @@ public void testProvideCapacity() throws Exception {
164164
buffer.ensureCapacity(8);
165165
assertTrue(buffer.capacity() >= 8);
166166
}
167+
168+
public void testTrim() throws Exception {
169+
CharBuffer buffer = new CharBuffer();
170+
buffer.append(" ");
171+
buffer.trimTrailingWhitespace();
172+
assertEquals(0, buffer.length());
173+
174+
buffer = new CharBuffer();
175+
buffer.append("Hello World! ");
176+
buffer.trimTrailingWhitespace();
177+
assertEquals("Hello World!", buffer.toString());
178+
}
167179
}

src/test/java/org/apache/commons/csv/ExtendedBufferedReaderTest.java

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,27 @@
1414
* See the License for the specific language governing permissions and
1515
* limitations under the License.
1616
*/
17+
1718
package org.apache.commons.csv;
1819

1920
import java.io.StringReader;
2021
import java.util.Arrays;
2122

2223
import junit.framework.TestCase;
2324

24-
/**
25-
* ExtendedBufferedReaderTest
26-
*/
2725
public class ExtendedBufferedReaderTest extends TestCase {
2826

29-
public void testReadLookahead1() throws Exception {
27+
public void testEmptyInput() throws Exception {
28+
ExtendedBufferedReader br = getBufferedReader("");
29+
assertEquals(ExtendedBufferedReader.END_OF_STREAM, br.read());
30+
assertEquals(ExtendedBufferedReader.END_OF_STREAM, br.lookAhead());
31+
assertEquals(ExtendedBufferedReader.END_OF_STREAM, br.readAgain());
32+
assertNull(br.readLine());
33+
assertEquals(0, br.read(new char[10], 0, 0));
34+
}
3035

31-
assertEquals(ExtendedBufferedReader.END_OF_STREAM, getEBR("").read());
32-
ExtendedBufferedReader br = getEBR("1\n2\r3\n");
36+
public void testReadLookahead1() throws Exception {
37+
ExtendedBufferedReader br = getBufferedReader("1\n2\r3\n");
3338
assertEquals('1', br.lookAhead());
3439
assertEquals(ExtendedBufferedReader.UNDEFINED, br.readAgain());
3540
assertEquals('1', br.read());
@@ -82,12 +87,8 @@ public void testReadLookahead1() throws Exception {
8287
public void testReadLookahead2() throws Exception {
8388
char[] ref = new char[5];
8489
char[] res = new char[5];
85-
86-
ExtendedBufferedReader br = getEBR("");
87-
assertEquals(0, br.read(res, 0, 0));
88-
assertTrue(Arrays.equals(res, ref));
89-
90-
br = getEBR("abcdefg");
90+
91+
ExtendedBufferedReader br = getBufferedReader("abcdefg");
9192
ref[0] = 'a';
9293
ref[1] = 'b';
9394
ref[2] = 'c';
@@ -100,18 +101,17 @@ public void testReadLookahead2() throws Exception {
100101
assertEquals(1, br.read(res, 4, 1));
101102
assertTrue(Arrays.equals(res, ref));
102103
assertEquals('d', br.readAgain());
103-
104104
}
105105

106106
public void testReadLine() throws Exception {
107-
ExtendedBufferedReader br = getEBR("");
107+
ExtendedBufferedReader br = getBufferedReader("");
108108
assertTrue(br.readLine() == null);
109109

110-
br = getEBR("\n");
110+
br = getBufferedReader("\n");
111111
assertTrue(br.readLine().equals(""));
112112
assertTrue(br.readLine() == null);
113113

114-
br = getEBR("foo\n\nhello");
114+
br = getBufferedReader("foo\n\nhello");
115115
assertEquals(0, br.getLineNumber());
116116
assertTrue(br.readLine().equals("foo"));
117117
assertEquals(1, br.getLineNumber());
@@ -122,7 +122,7 @@ public void testReadLine() throws Exception {
122122
assertTrue(br.readLine() == null);
123123
assertEquals(3, br.getLineNumber());
124124

125-
br = getEBR("foo\n\nhello");
125+
br = getBufferedReader("foo\n\nhello");
126126
assertEquals('f', br.read());
127127
assertEquals('o', br.lookAhead());
128128
assertTrue(br.readLine().equals("oo"));
@@ -136,7 +136,7 @@ public void testReadLine() throws Exception {
136136
assertEquals(3, br.getLineNumber());
137137

138138

139-
br = getEBR("foo\rbaar\r\nfoo");
139+
br = getBufferedReader("foo\rbaar\r\nfoo");
140140
assertTrue(br.readLine().equals("foo"));
141141
assertEquals('b', br.lookAhead());
142142
assertTrue(br.readLine().equals("baar"));
@@ -145,7 +145,7 @@ public void testReadLine() throws Exception {
145145
assertTrue(br.readLine() == null);
146146
}
147147

148-
private ExtendedBufferedReader getEBR(String s) {
148+
private ExtendedBufferedReader getBufferedReader(String s) {
149149
return new ExtendedBufferedReader(new StringReader(s));
150150
}
151151
}

0 commit comments

Comments
 (0)