View Javadoc
1 /* 2 CsvJdbc - a JDBC driver for CSV files 3 Copyright (C) 2001 Jonathan Ackerman 4 5 This library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Lesser General Public 7 License as published by the Free Software Foundation; either 8 version 2.1 of the License, or (at your option) any later version. 9 10 This library is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Lesser General Public License for more details. 14 15 You should have received a copy of the GNU Lesser General Public 16 License along with this library; if not, write to the Free Software 17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 */ 19 package test.org.relique.jdbc.csv; 20 21 import java.sql.*; 22 import java.util.Properties; 23 import junit.framework.*; 24 25 /***This class is used to test the CsvJdbc driver. 26 * 27 * @author Jonathan Ackerman 28 * @author JD Evora 29 * @version $Id: TestCsvDriver.html,v 1.1 2003/05/12 16:19:47 sinisa Exp $ 30 */ 31 public class TestCsvDriver extends TestCase 32 { 33 public static final String SAMPLE_FILES_LOCATION_PROPERTY="sample.files.location"; 34 private String filePath; 35 36 public TestCsvDriver(String name) 37 { 38 super(name); 39 } 40 41 protected void setUp() 42 { 43 filePath=System.getProperty(SAMPLE_FILES_LOCATION_PROPERTY); 44 assertNotNull("Sample files location property not set !", filePath); 45 46 // load CSV driver 47 try 48 { 49 Class.forName("org.relique.jdbc.csv.CsvDriver"); 50 } 51 catch (ClassNotFoundException e) 52 { 53 fail("Driver is not in the CLASSPATH -> " + e); 54 } 55 56 } 57 58 public void testWithDefaultValues() 59 { 60 try 61 { 62 Connection conn = DriverManager.getConnection("jdbc:relique:csv:" + filePath ); 63 64 Statement stmt = conn.createStatement(); 65 66 ResultSet results = stmt.executeQuery("SELECT NAME,ID,EXTRA_FIELD FROM sample"); 67 68 results.next(); 69 assertTrue("Incorrect ID Value",results.getString("ID").equals("Q123")); 70 assertTrue("Incorrect NAME Value",results.getString("NAME").equals("\"S,\"")); 71 assertTrue("Incorrect EXTRA_FIELD Value",results.getString("EXTRA_FIELD").equals("F")); 72 73 results.next(); 74 assertTrue("Incorrect ID Value",results.getString("ID").equals("A123")); 75 assertTrue("Incorrect NAME Value",results.getString("NAME").equals("Jonathan Ackerman")); 76 assertTrue("Incorrect EXTRA_FIELD Value",results.getString("EXTRA_FIELD").equals("A")); 77 78 results.next(); 79 assertTrue("Incorrect ID Value",results.getString("ID").equals("B234")); 80 assertTrue("Incorrect NAME Value",results.getString("NAME").equals("Grady O'Neil")); 81 assertTrue("Incorrect EXTRA_FIELD Value",results.getString("EXTRA_FIELD").equals("B")); 82 83 results.next(); 84 assertTrue("Incorrect ID Value",results.getString("ID").equals("C456")); 85 assertTrue("Incorrect NAME Value",results.getString("NAME").equals("Susan, Peter and Dave")); 86 assertTrue("Incorrect EXTRA_FIELD Value",results.getString("EXTRA_FIELD").equals("C")); 87 88 results.next(); 89 assertTrue("Incorrect ID Value",results.getString("ID").equals("D789")); 90 assertTrue("Incorrect NAME Value",results.getString("NAME").equals("Amelia \"meals\" Maurice")); 91 assertTrue("Incorrect EXTRA_FIELD Value",results.getString("EXTRA_FIELD").equals("E")); 92 93 results.next(); 94 assertTrue("Incorrect ID Value",results.getString("ID").equals("X234")); 95 assertTrue("Incorrect NAME Value",results.getString("NAME").equals("Peter \"peg leg\", Jimmy & Samantha \"Sam\"")); 96 assertTrue("Incorrect EXTRA_FIELD Value",results.getString("EXTRA_FIELD").equals("G")); 97 98 results.close(); 99 stmt.close(); 100 conn.close(); 101 } 102 catch(Exception e) 103 { 104 fail("Unexpected Exception: " + e); 105 } 106 } 107 108 public void testWithProperties() 109 { 110 try 111 { 112 Properties props = new Properties(); 113 props.put("fileExtension",".txt"); 114 props.put("separator",";"); 115 116 Connection conn = DriverManager.getConnection("jdbc:relique:csv:" + filePath,props); 117 118 Statement stmt = conn.createStatement(); 119 120 ResultSet results = stmt.executeQuery("SELECT NAME,ID,EXTRA_FIELD FROM sample"); 121 122 results.next(); 123 assertTrue("Incorrect ID Value",results.getString("ID").equals("Q123")); 124 assertTrue("Incorrect NAME Value",results.getString("NAME").equals("\"S;\"")); 125 assertTrue("Incorrect EXTRA_FIELD Value",results.getString("EXTRA_FIELD").equals("F")); 126 127 results.next(); 128 assertTrue("Incorrect ID Value",results.getString("ID").equals("A123")); 129 assertTrue("Incorrect NAME Value",results.getString("NAME").equals("Jonathan Ackerman")); 130 assertTrue("Incorrect EXTRA_FIELD Value",results.getString("EXTRA_FIELD").equals("A")); 131 132 results.next(); 133 assertTrue("Incorrect ID Value",results.getString("ID").equals("B234")); 134 assertTrue("Incorrect NAME Value",results.getString("NAME").equals("Grady O'Neil")); 135 assertTrue("Incorrect EXTRA_FIELD Value",results.getString("EXTRA_FIELD").equals("B")); 136 137 results.next(); 138 assertTrue("Incorrect ID Value",results.getString("ID").equals("C456")); 139 assertTrue("Incorrect NAME Value",results.getString("NAME").equals("Susan; Peter and Dave")); 140 assertTrue("Incorrect EXTRA_FIELD Value",results.getString("EXTRA_FIELD").equals("C")); 141 142 results.next(); 143 assertTrue("Incorrect ID Value",results.getString("ID").equals("D789")); 144 assertTrue("Incorrect NAME Value",results.getString("NAME").equals("Amelia \"meals\" Maurice")); 145 assertTrue("Incorrect EXTRA_FIELD Value",results.getString("EXTRA_FIELD").equals("E")); 146 147 results.next(); 148 assertTrue("Incorrect ID Value",results.getString("ID").equals("X234")); 149 assertTrue("Incorrect NAME Value",results.getString("NAME").equals("Peter \"peg leg\"; Jimmy & Samantha \"Sam\"")); 150 assertTrue("Incorrect EXTRA_FIELD Value",results.getString("EXTRA_FIELD").equals("G")); 151 152 results.close(); 153 stmt.close(); 154 conn.close(); 155 } 156 catch(Exception e) 157 { 158 fail("Unexpected Exception: " + e); 159 } 160 } 161 162 public void testMetadata() 163 { 164 try 165 { 166 Connection conn = DriverManager.getConnection("jdbc:relique:csv:" + filePath); 167 168 Statement stmt = conn.createStatement(); 169 170 ResultSet results = stmt.executeQuery("SELECT * FROM sample"); 171 172 ResultSetMetaData metadata = results.getMetaData(); 173 174 assertTrue("Incorrect Table Name",metadata.getTableName(0).equals("sample")); 175 176 assertTrue("Incorrect Column Name 1",metadata.getColumnName(1).equals("ID")); 177 assertTrue("Incorrect Column Name 2",metadata.getColumnName(2).equals("NAME")); 178 assertTrue("Incorrect Column Name 3",metadata.getColumnName(3).equals("EXTRA_FIELD")); 179 180 results.close(); 181 stmt.close(); 182 conn.close(); 183 } 184 catch(Exception e) 185 { 186 fail("Unexpected Exception: " + e); 187 } 188 } 189 190 public void testMetadataWithSupressedHeaders() 191 { 192 try 193 { 194 Properties props = new Properties(); 195 props.put("suppressHeaders","true"); 196 197 Connection conn = DriverManager.getConnection("jdbc:relique:csv:" + filePath,props); 198 199 Statement stmt = conn.createStatement(); 200 201 ResultSet results = stmt.executeQuery("SELECT * FROM sample"); 202 203 ResultSetMetaData metadata = results.getMetaData(); 204 205 assertTrue("Incorrect Table Name",metadata.getTableName(0).equals("sample")); 206 207 assertTrue("Incorrect Column Name 1",metadata.getColumnName(1).equals("COLUMN1")); 208 assertTrue("Incorrect Column Name 2",metadata.getColumnName(2).equals("COLUMN2")); 209 assertTrue("Incorrect Column Name 3",metadata.getColumnName(3).equals("COLUMN3")); 210 211 results.close(); 212 stmt.close(); 213 conn.close(); 214 } 215 catch(Exception e) 216 { 217 fail("Unexpected Exception: " + e); 218 } 219 } 220 221 222 public void testWithSuppressedHeaders() 223 { 224 try 225 { 226 Properties props = new Properties(); 227 props.put("suppressHeaders","true"); 228 229 Connection conn = DriverManager.getConnection("jdbc:relique:csv:" + filePath,props ); 230 231 Statement stmt = conn.createStatement(); 232 233 ResultSet results = stmt.executeQuery("SELECT * FROM sample"); 234 235 // header is now treated as normal data line 236 results.next(); 237 assertTrue("Incorrect COLUMN1 Value",results.getString("COLUMN1").equals("ID")); 238 assertTrue("Incorrect COLUMN2 Value",results.getString("COLUMN2").equals("NAME")); 239 assertTrue("Incorrect COLUMN3 Value",results.getString("COLUMN3").equals("EXTRA_FIELD")); 240 241 results.next(); 242 assertTrue("Incorrect COLUMN1 Value",results.getString("COLUMN1").equals("Q123")); 243 assertTrue("Incorrect COLUMN2 Value",results.getString("COLUMN2").equals("\"S,\"")); 244 assertTrue("Incorrect COLUMN3 Value",results.getString("COLUMN3").equals("F")); 245 246 results.next(); 247 assertTrue("Incorrect COLUMN1 Value",results.getString("COLUMN1").equals("A123")); 248 assertTrue("Incorrect COLUMN2 Value",results.getString("COLUMN2").equals("Jonathan Ackerman")); 249 assertTrue("Incorrect COLUMN3 Value",results.getString("COLUMN3").equals("A")); 250 251 results.next(); 252 assertTrue("Incorrect COLUMN1 Value",results.getString("COLUMN1").equals("B234")); 253 assertTrue("Incorrect COLUMN2 Value",results.getString("COLUMN2").equals("Grady O'Neil")); 254 assertTrue("Incorrect COLUMN3 Value",results.getString("COLUMN3").equals("B")); 255 256 results.next(); 257 assertTrue("Incorrect COLUMN1 Value",results.getString("COLUMN1").equals("C456")); 258 assertTrue("Incorrect COLUMN2 Value",results.getString("COLUMN2").equals("Susan, Peter and Dave")); 259 assertTrue("Incorrect COLUMN3 Value",results.getString("COLUMN3").equals("C")); 260 261 results.next(); 262 assertTrue("Incorrect COLUMN1 Value",results.getString("COLUMN1").equals("D789")); 263 assertTrue("Incorrect COLUMN2 Value",results.getString("COLUMN2").equals("Amelia \"meals\" Maurice")); 264 assertTrue("Incorrect COLUMN3 Value",results.getString("COLUMN3").equals("E")); 265 266 results.next(); 267 assertTrue("Incorrect COLUMN1 Value",results.getString("COLUMN1").equals("X234")); 268 assertTrue("Incorrect COLUMN2 Value",results.getString("COLUMN2").equals("Peter \"peg leg\", Jimmy & Samantha \"Sam\"")); 269 assertTrue("Incorrect COLUMN3 Value",results.getString("COLUMN3").equals("G")); 270 271 results.close(); 272 stmt.close(); 273 conn.close(); 274 } 275 catch(Exception e) 276 { 277 fail("Unexpected Exception: " + e); 278 } 279 } 280 }

This page automatically generated by Maven