1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package au.csiro.netcdf.util;
17
18 import junit.framework.TestCase;
19
20
21
22
23
24
25
26
27
28
29 public class CSVTokenizerTest extends TestCase
30 {
31
32
33
34
35 protected void setUp() throws Exception
36 {
37 super.setUp();
38 }
39
40 public void testDelimiterNotReturned()
41 {
42 String testText = "1,\"Foo\",\"Ba\"\"r\",\"Ba,\nz\",a\n,\"b\015\"";
43 CSVTokenizer tok = new CSVTokenizer(testText, false);
44 assertTrue(tok.hasMoreElements());
45 assertTrue(tok.hasMoreTokens());
46 assertEquals("Token 1 incorrect", "1", tok.nextToken());
47 assertTrue(tok.hasMoreElements());
48 assertTrue(tok.hasMoreTokens());
49 assertEquals("Token 2 incorrect", "Foo", tok.nextToken());
50 assertTrue(tok.hasMoreElements());
51 assertTrue(tok.hasMoreTokens());
52 assertEquals("Token 3 incorrect", "Ba\"r", tok.nextToken());
53 assertTrue(tok.hasMoreElements());
54 assertTrue(tok.hasMoreTokens());
55 assertEquals("Token 4 incorrect", "Ba,\nz", tok.nextToken());
56 assertTrue(tok.hasMoreElements());
57 assertTrue(tok.hasMoreTokens());
58 assertEquals("Token 5 incorrect", "a", tok.nextToken());
59 assertTrue(tok.hasMoreElements());
60 assertTrue(tok.hasMoreTokens());
61 assertEquals("Token 6 incorrect", "", tok.nextToken());
62 assertTrue(tok.hasMoreElements());
63 assertTrue(tok.hasMoreTokens());
64 assertEquals("Token 7 incorrect", "b\015", tok.nextToken());
65 assertFalse(tok.hasMoreElements());
66 assertFalse(tok.hasMoreTokens());
67 assertTrue(tok.atEOL());
68 }
69
70 public void testDelimiterReturned()
71 {
72 String testText = "1,\"Foo\",\"Ba\"\"r\"\nBaz";
73 CSVTokenizer tok = new CSVTokenizer(testText, true);
74 assertTrue(tok.hasMoreElements());
75 assertTrue(tok.hasMoreTokens());
76 assertEquals("Token 1 incorrect", "1", tok.nextToken());
77 assertTrue(tok.hasMoreElements());
78 assertTrue(tok.hasMoreTokens());
79 assertEquals("Delimiter 1 incorrect", ",", tok.nextToken());
80 assertTrue(tok.hasMoreElements());
81 assertTrue(tok.hasMoreTokens());
82 assertEquals("Token 2 incorrect", "Foo", tok.nextToken());
83 assertTrue(tok.hasMoreElements());
84 assertTrue(tok.hasMoreTokens());
85 assertEquals("Delimiter 2 incorrect", ",", tok.nextToken());
86 assertTrue(tok.hasMoreElements());
87 assertTrue(tok.hasMoreTokens());
88 assertFalse(tok.atEOL());
89 assertEquals("Token 3 incorrect", "Ba\"r", tok.nextToken());
90 assertTrue(tok.hasMoreElements());
91 assertTrue(tok.hasMoreTokens());
92 assertEquals("Delimiter 3 incorrect", "\n", tok.nextToken());
93 assertTrue(tok.hasMoreElements());
94 assertTrue(tok.hasMoreTokens());
95 assertEquals("Token 4 incorrect", "Baz", tok.nextToken());
96 assertFalse(tok.hasMoreElements());
97 assertFalse(tok.hasMoreTokens());
98 assertTrue(tok.atEOL());
99 }
100 }