KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > h2 > test > db > TestCsv


1 /*
2  * Copyright 2004-2006 H2 Group. Licensed under the H2 License, Version 1.0 (http://h2database.com/html/license.html).
3  * Initial Developer: H2 Group
4  */

5 package org.h2.test.db;
6
7 import java.io.File JavaDoc;
8 import java.io.RandomAccessFile JavaDoc;
9 import java.sql.Connection JavaDoc;
10 import java.sql.ResultSet JavaDoc;
11 import java.sql.ResultSetMetaData JavaDoc;
12 import java.sql.Statement JavaDoc;
13
14 import org.h2.test.TestBase;
15 import org.h2.tools.Csv;
16
17 public class TestCsv extends TestBase {
18
19     public void test() throws Exception JavaDoc {
20         testAsTable();
21         testWriteRead();
22         testRead();
23     }
24     
25     private void testAsTable() throws Exception JavaDoc {
26         deleteDb("csv");
27         Connection JavaDoc conn = getConnection("csv");
28         Statement JavaDoc stat = conn.createStatement();
29         stat.execute("call csvwrite('"+BASE_DIR+"/test.csv', 'select 1 id, ''Hello'' name')");
30         ResultSet JavaDoc rs = stat.executeQuery("select name from csvread('"+BASE_DIR+"/test.csv')");
31         check(rs.next());
32         check(rs.getString(1), "Hello");
33         checkFalse(rs.next());
34         rs = stat.executeQuery("call csvread('"+BASE_DIR+"/test.csv')");
35         check(rs.next());
36         check(rs.getInt(1), 1);
37         check(rs.getString(2), "Hello");
38         checkFalse(rs.next());
39         new File JavaDoc(BASE_DIR+"/test.csv").delete();
40         conn.close();
41         
42     }
43     
44     public void testRead() throws Exception JavaDoc {
45         File JavaDoc f = new File JavaDoc(BASE_DIR + "/test.csv");
46         f.delete();
47         RandomAccessFile JavaDoc file = new RandomAccessFile JavaDoc(f, "rw");
48         file.write("a,b,c,d\n201,-2,0,18\n, \"abc\"\"\" ,,\"\"\n 1 ,2 , 3, 4 \n5, 6, 7, 8".getBytes());
49         file.close();
50         ResultSet JavaDoc rs = Csv.getInstance().read(BASE_DIR + "/test.csv", null, "UTF8");
51         ResultSetMetaData JavaDoc meta = rs.getMetaData();
52         check(meta.getColumnCount(), 4);
53         check(meta.getColumnLabel(1), "a");
54         check(meta.getColumnLabel(2), "b");
55         check(meta.getColumnLabel(3), "c");
56         check(meta.getColumnLabel(4), "d");
57         check(rs.next());
58         check(rs.getString(1), "201");
59         check(rs.getString(2), "-2");
60         check(rs.getString(3), "0");
61         check(rs.getString(4), "18");
62         check(rs.next());
63         check(rs.getString(1), null);
64         check(rs.getString(2), "abc\"");
65         check(rs.getString(3), null);
66         check(rs.getString(4), "");
67         check(rs.next());
68         check(rs.getString(1), "1");
69         check(rs.getString(2), "2");
70         check(rs.getString(3), "3");
71         check(rs.getString(4), "4");
72         check(rs.next());
73         check(rs.getString(1), "5");
74         check(rs.getString(2), "6");
75         check(rs.getString(3), "7");
76         check(rs.getString(4), "8");
77         checkFalse(rs.next());
78         
79 // a,b,c,d
80
// 201,-2,0,18
81
// 201,2,0,18
82
// 201,2,0,18
83
// 201,2,0,18
84
// 201,2,0,18
85
// 201,2,0,18
86
}
87     
88     public void testWriteRead() throws Exception JavaDoc {
89         
90         deleteDb("csv");
91
92         Connection JavaDoc conn = getConnection("csv");
93         Statement JavaDoc stat = conn.createStatement();
94         stat.execute("CREATE TABLE TEST(ID IDENTITY, NAME VARCHAR)");
95         int len = 100;
96         for(int i=0; i<len; i++) {
97             stat.execute("INSERT INTO TEST(NAME) VALUES('Ruebezahl')");
98         }
99         Csv.getInstance().write(conn, BASE_DIR + "/testRW.csv", "SELECT * FROM TEST", "UTF8");
100         ResultSet JavaDoc rs = Csv.getInstance().read(BASE_DIR + "/testRW.csv", null, "UTF8");
101         // stat.execute("CREATE ALIAS CSVREAD FOR \"org.h2.tools.Csv.read\"");
102
ResultSetMetaData JavaDoc meta = rs.getMetaData();
103         check(2, meta.getColumnCount());
104         for(int i=0; i<len; i++) {
105             rs.next();
106             check(rs.getString("ID"), "" + (i+1));
107             check(rs.getString("NAME"), "Ruebezahl");
108         }
109         checkFalse(rs.next());
110         rs.close();
111         conn.close();
112         
113     }
114
115 }
116
Popular Tags