~ubuntu-branches/ubuntu/quantal/commons-csv/quantal

« back to all changes in this revision

Viewing changes to src/test/org/apache/commons/csv/ExtendedBufferedReaderTest.java

  • Committer: Bazaar Package Importer
  • Author(s): Jan-Pascal van Best
  • Date: 2007-07-27 09:45:30 UTC
  • Revision ID: james.westby@ubuntu.com-20070727094530-iy6ls22i7yj3p0sg
Tags: upstream-0.1-SNAPSHOT+svn558885
ImportĀ upstreamĀ versionĀ 0.1-SNAPSHOT+svn558885

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Licensed to the Apache Software Foundation (ASF) under one or more
 
3
 * contributor license agreements.  See the NOTICE file distributed with
 
4
 * this work for additional information regarding copyright ownership.
 
5
 * The ASF licenses this file to You under the Apache License, Version 2.0
 
6
 * (the "License"); you may not use this file except in compliance with
 
7
 * the License.  You may obtain a copy of the License at
 
8
 * 
 
9
 *      http://www.apache.org/licenses/LICENSE-2.0
 
10
 * 
 
11
 * Unless required by applicable law or agreed to in writing, software
 
12
 * distributed under the License is distributed on an "AS IS" BASIS,
 
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
14
 * See the License for the specific language governing permissions and
 
15
 * limitations under the License.
 
16
 */
 
17
package org.apache.commons.csv;
 
18
 
 
19
import java.io.StringReader;
 
20
import java.util.Arrays;
 
21
 
 
22
import junit.framework.Test;
 
23
import junit.framework.TestCase;
 
24
import junit.framework.TestSuite;
 
25
 
 
26
/**
 
27
 * ExtendedBufferedReaderTest
 
28
 *
 
29
 */
 
30
public class ExtendedBufferedReaderTest extends TestCase {
 
31
 
 
32
  private StringBuffer buf = null;
 
33
  private ExtendedBufferedReader br = null;
 
34
  
 
35
  /**
 
36
   * Constructor for ExtendedBufferedReaderTest.
 
37
   * @param arg0
 
38
   */
 
39
  public ExtendedBufferedReaderTest(String arg0) {
 
40
    super(arg0);
 
41
  }
 
42
 
 
43
  public static Test suite() {
 
44
    return new TestSuite(ExtendedBufferedReaderTest.class);
 
45
  }
 
46
  
 
47
  // ======================================================
 
48
  //   the test cases
 
49
  // ======================================================
 
50
 
 
51
  public void testConstructors() {
 
52
    br = new ExtendedBufferedReader(new StringReader(""));
 
53
    br = new ExtendedBufferedReader(new StringReader(""), 10); 
 
54
  }
 
55
  
 
56
  public void testReadLookahead1() throws Exception {
 
57
   
 
58
    assertEquals(ExtendedBufferedReader.END_OF_STREAM, getEBR("").read());
 
59
    br = getEBR("1\n2\r3\n");
 
60
    assertEquals('1', br.lookAhead());
 
61
    assertEquals(ExtendedBufferedReader.UNDEFINED, br.readAgain());
 
62
    assertEquals('1', br.read());
 
63
    assertEquals('1', br.readAgain());
 
64
 
 
65
    assertEquals(0, br.getLineNumber());
 
66
    assertEquals('\n', br.lookAhead());
 
67
    assertEquals(0, br.getLineNumber());
 
68
    assertEquals('1', br.readAgain());    
 
69
    assertEquals('\n', br.read());
 
70
    assertEquals(1, br.getLineNumber());
 
71
    assertEquals('\n', br.readAgain());
 
72
    assertEquals(1, br.getLineNumber());
 
73
    
 
74
    assertEquals('2', br.lookAhead());
 
75
    assertEquals(1, br.getLineNumber());
 
76
    assertEquals('\n', br.readAgain());
 
77
    assertEquals(1, br.getLineNumber());
 
78
    assertEquals('2', br.read());
 
79
    assertEquals('2', br.readAgain());
 
80
    
 
81
    assertEquals('\r', br.lookAhead());
 
82
    assertEquals('2', br.readAgain());
 
83
    assertEquals('\r', br.read());
 
84
    assertEquals('\r', br.readAgain());
 
85
    
 
86
    assertEquals('3', br.lookAhead());
 
87
    assertEquals('\r', br.readAgain());
 
88
    assertEquals('3', br.read());
 
89
    assertEquals('3', br.readAgain());
 
90
    
 
91
    assertEquals('\n', br.lookAhead());
 
92
    assertEquals(1, br.getLineNumber());
 
93
    assertEquals('3', br.readAgain());
 
94
    assertEquals('\n', br.read());
 
95
    assertEquals(2, br.getLineNumber());
 
96
    assertEquals('\n', br.readAgain());
 
97
    assertEquals(2, br.getLineNumber());
 
98
    
 
99
    assertEquals(ExtendedBufferedReader.END_OF_STREAM, br.lookAhead());
 
100
    assertEquals('\n', br.readAgain());
 
101
    assertEquals(ExtendedBufferedReader.END_OF_STREAM, br.read());
 
102
    assertEquals(ExtendedBufferedReader.END_OF_STREAM, br.readAgain());
 
103
    assertEquals(ExtendedBufferedReader.END_OF_STREAM, br.read());
 
104
    assertEquals(ExtendedBufferedReader.END_OF_STREAM, br.lookAhead());
 
105
 
 
106
  }
 
107
  
 
108
 
 
109
  public void testReadLookahead2() throws Exception {
 
110
    char[] ref = new char[5];
 
111
    char[] res = new char[5];  
 
112
    
 
113
    br = getEBR("");
 
114
    assertEquals(0, br.read(res, 0, 0));
 
115
    assertTrue(Arrays.equals(res, ref)); 
 
116
    
 
117
    br = getEBR("abcdefg");
 
118
    ref[0] = 'a';
 
119
    ref[1] = 'b';
 
120
    ref[2] = 'c';
 
121
    assertEquals(3, br.read(res, 0, 3));
 
122
    assertTrue(Arrays.equals(res, ref));
 
123
    assertEquals('c', br.readAgain());
 
124
    
 
125
    assertEquals('d', br.lookAhead());
 
126
    ref[4] = 'd';
 
127
    assertEquals(1, br.read(res, 4, 1));
 
128
    assertTrue(Arrays.equals(res, ref));
 
129
    assertEquals('d', br.readAgain());
 
130
 
 
131
  }
 
132
  
 
133
  public void testMarkSupported() {
 
134
    assertFalse(getEBR("foo").markSupported());
 
135
  }
 
136
  
 
137
  public void testReadLine() throws Exception {
 
138
    br = getEBR("");
 
139
    assertTrue(br.readLine() == null);
 
140
    
 
141
    br = getEBR("\n");
 
142
    assertTrue(br.readLine().equals(""));
 
143
    assertTrue(br.readLine() == null);
 
144
    
 
145
    br = getEBR("foo\n\nhello");
 
146
    assertEquals(0, br.getLineNumber());
 
147
    assertTrue(br.readLine().equals("foo"));
 
148
    assertEquals(1, br.getLineNumber());
 
149
    assertTrue(br.readLine().equals(""));
 
150
    assertEquals(2, br.getLineNumber());
 
151
    assertTrue(br.readLine().equals("hello"));
 
152
    assertEquals(3, br.getLineNumber());
 
153
    assertTrue(br.readLine() == null);
 
154
    assertEquals(3, br.getLineNumber());
 
155
    
 
156
    br = getEBR("foo\n\nhello");
 
157
    assertEquals('f', br.read());
 
158
    assertEquals('o', br.lookAhead());
 
159
    assertTrue(br.readLine().equals("oo"));
 
160
    assertEquals(1, br.getLineNumber());
 
161
    assertEquals('\n', br.lookAhead());
 
162
    assertTrue(br.readLine().equals(""));
 
163
    assertEquals(2, br.getLineNumber());
 
164
    assertEquals('h', br.lookAhead());
 
165
    assertTrue(br.readLine().equals("hello"));
 
166
    assertTrue(br.readLine() == null);
 
167
    assertEquals(3, br.getLineNumber());
 
168
    
 
169
 
 
170
    br = getEBR("foo\rbaar\r\nfoo");
 
171
    assertTrue(br.readLine().equals("foo"));
 
172
    assertEquals('b', br.lookAhead());
 
173
    assertTrue(br.readLine().equals("baar"));
 
174
    assertEquals('f', br.lookAhead());
 
175
    assertTrue(br.readLine().equals("foo"));
 
176
    assertTrue(br.readLine() == null);
 
177
  }
 
178
  
 
179
  public void testSkip0() throws Exception {
 
180
    
 
181
    br = getEBR("");
 
182
    assertEquals(0, br.skip(0));
 
183
    assertEquals(0, br.skip(1));
 
184
    
 
185
    br = getEBR("");
 
186
    assertEquals(0, br.skip(1));
 
187
    
 
188
    br = getEBR("abcdefg");
 
189
    assertEquals(0, br.skip(0));
 
190
    assertEquals('a', br.lookAhead());
 
191
    assertEquals(0, br.skip(0));
 
192
    assertEquals('a', br.lookAhead());
 
193
    assertEquals(1, br.skip(1));
 
194
    assertEquals('b', br.lookAhead());
 
195
    assertEquals('b', br.read());
 
196
    assertEquals(3, br.skip(3));
 
197
    assertEquals('f', br.lookAhead());
 
198
    assertEquals(2, br.skip(5));
 
199
    assertTrue(br.readLine() == null);
 
200
    
 
201
    br = getEBR("12345");
 
202
    assertEquals(5, br.skip(5));
 
203
    assertTrue (br.lookAhead() == ExtendedBufferedReader.END_OF_STREAM);
 
204
  }
 
205
  
 
206
  public void testSkipUntil() throws Exception {   
 
207
    br = getEBR("");
 
208
    assertEquals(0, br.skipUntil(';'));
 
209
    br = getEBR("ABCDEF,GHL,,MN");
 
210
    assertEquals(6, br.skipUntil(','));
 
211
    assertEquals(0, br.skipUntil(','));
 
212
    br.skip(1);
 
213
    assertEquals(3, br.skipUntil(','));
 
214
    br.skip(1);
 
215
    assertEquals(0, br.skipUntil(','));
 
216
    br.skip(1);
 
217
    assertEquals(2, br.skipUntil(','));
 
218
  }
 
219
  
 
220
  public void testReadUntil() throws Exception {
 
221
    br = getEBR("");
 
222
    assertTrue(br.readUntil(';').equals(""));
 
223
    br = getEBR("ABCDEF;GHL;;MN");
 
224
    assertTrue(br.readUntil(';').equals("ABCDEF"));
 
225
    assertTrue(br.readUntil(';').length() == 0);
 
226
    br.skip(1);
 
227
    assertTrue(br.readUntil(';').equals("GHL"));
 
228
    br.skip(1);
 
229
    assertTrue(br.readUntil(';').equals(""));
 
230
    br.skip(1);
 
231
    assertTrue(br.readUntil(',').equals("MN"));
 
232
  }
 
233
  
 
234
  private ExtendedBufferedReader getEBR(String s) {
 
235
    return new ExtendedBufferedReader(new StringReader(s));
 
236
  }
 
237
}