package com.ricebridge.csvman.test;
import com.ricebridge.csvman.*;
import org.jostraca.util.*;
import junit.framework.*;
import junit.textui.*;
import java.util.*;
import java.io.*;
import java.sql.*;
public class LoadTest extends TestCase {
public LoadTest( String pName ) {
super( pName );
}
public static TestSuite suite() {
return new TestSuite( LoadTest.class );
}
public static void main( String[] pArgs ) {
TestRunner.run( suite() );
}
public void testExample() throws Exception {
File csvFile = TestUtil.getTextCsvFile( "example" );
CsvManager csvManager = new CsvManager();
List data = csvManager.load( csvFile );
StringBuffer sb = new StringBuffer();
for( int record = 0; record < data.size(); record++ ) {
sb.append( "record: "+record+"\n" );
String[] fields = (String[]) data.get(record);
for( int field = 0; field < fields.length; field++ ) {
sb.append( "field "+field+" has value: "+fields[field]+"\n" );
}
}
String out = "record: 0\nfield 0 has value: r1\nfield 1 has value: f1\nfield 2 has value: b1\nrecord: 1\nfield 0 has value: r2\nfield 1 has value: f2\nfield 2 has value: b2\nrecord: 2\nfield 0 has value: r3\nfield 1 has value: f3\nfield 2 has value: b3\n";
assertEquals( out, sb.toString() );
}
public void testSingle() throws Exception {
String loadcanon = "[b1, q1], [b2, q2], ";
File csvFile = null;
csvFile = TestUtil.getTextCsvFile( "load01" );
CsvManager csvManager = new CsvManager();
List data = csvManager.load( csvFile );
assertEquals( loadcanon, canon(data) );
data = csvManager.load( csvFile.getAbsolutePath() );
assertEquals( loadcanon, canon(data) );
InputStream is = new FileInputStream( csvFile );
data = csvManager.load( is );
assertEquals( loadcanon, canon(data) );
is.close();
Reader fr = new FileReader( csvFile );
data = csvManager.load( fr );
assertEquals( loadcanon, canon(data) );
fr.close();
data = csvManager.loadFromString( FileUtil.readFile(csvFile) );
assertEquals( loadcanon, canon(data) );
}
public void testRepeat() throws Exception {
File csvFile = null;
csvFile = TestUtil.getTextCsvFile( "load01" );
LineSpec fs = new LineSpec( new String[] {"Name","Que"} );
CsvManager csvManager = new CsvManager();
String loadcanon01 = "[b1, q1], [b2, q2], ";
String loadcanon02 = "[2b1, 2q1], [2b2, 2q2], [2b3, 2q3], ";
String loadcanon03 = "[3b1, 3q1], [3b2, 3q2], [3b3, 3q3], [3b4, 3q4], ";
List data = csvManager.load( csvFile );
assertEquals( loadcanon01, canon(data) );
assertEquals( 2, csvManager.getLineCount() );
data = csvManager.load( csvFile );
assertEquals( loadcanon01, canon(data) );
assertEquals( 2, csvManager.getLineCount() );
csvFile = TestUtil.getTextCsvFile( "load02" );
data = csvManager.load( csvFile );
assertEquals( loadcanon02, canon(data) );
assertEquals( 3, csvManager.getLineCount() );
csvFile = TestUtil.getTextCsvFile( "load03" );
data = csvManager.load( csvFile );
assertEquals( loadcanon03, canon(data) );
assertEquals( 4, csvManager.getLineCount() );
csvFile = TestUtil.getTextCsvFile( "load01" );
data = csvManager.load( csvFile.getAbsolutePath() );
assertEquals( loadcanon01, canon(data) );
assertEquals( 2, csvManager.getLineCount() );
data = csvManager.load( csvFile.getAbsolutePath() );
assertEquals( loadcanon01, canon(data) );
assertEquals( 2, csvManager.getLineCount() );
csvFile = TestUtil.getTextCsvFile( "load02" );
data = csvManager.load( csvFile.getAbsolutePath() );
assertEquals( loadcanon02, canon(data) );
assertEquals( 3, csvManager.getLineCount() );
csvFile = TestUtil.getTextCsvFile( "load03" );
data = csvManager.load( csvFile.getAbsolutePath() );
assertEquals( loadcanon03, canon(data) );
assertEquals( 4, csvManager.getLineCount() );
csvFile = TestUtil.getTextCsvFile( "load01" );
InputStream is = new FileInputStream( csvFile );
data = csvManager.load( is );
assertEquals( loadcanon01, canon(data) );
assertEquals( 2, csvManager.getLineCount() );
is.close();
is = new FileInputStream( csvFile );
data = csvManager.load( is );
assertEquals( loadcanon01, canon(data) );
assertEquals( 2, csvManager.getLineCount() );
is.close();
csvFile = TestUtil.getTextCsvFile( "load02" );
is = new FileInputStream( csvFile );
data = csvManager.load( is );
assertEquals( loadcanon02, canon(data) );
assertEquals( 3, csvManager.getLineCount() );
is.close();
csvFile = TestUtil.getTextCsvFile( "load03" );
is = new FileInputStream( csvFile );
data = csvManager.load( is );
assertEquals( loadcanon03, canon(data) );
assertEquals( 4, csvManager.getLineCount() );
is.close();
csvFile = TestUtil.getTextCsvFile( "load01" );
Reader fr = new FileReader( csvFile );
data = csvManager.load( fr );
assertEquals( loadcanon01, canon(data) );
assertEquals( 2, csvManager.getLineCount() );
fr.close();
fr = new FileReader( csvFile );
data = csvManager.load( fr );
assertEquals( loadcanon01, canon(data) );
assertEquals( 2, csvManager.getLineCount() );
fr.close();
csvFile = TestUtil.getTextCsvFile( "load02" );
fr = new FileReader( csvFile );
data = csvManager.load( fr );
assertEquals( loadcanon02, canon(data) );
assertEquals( 3, csvManager.getLineCount() );
fr.close();
csvFile = TestUtil.getTextCsvFile( "load03" );
fr = new FileReader( csvFile );
data = csvManager.load( fr );
assertEquals( loadcanon03, canon(data) );
assertEquals( 4, csvManager.getLineCount() );
fr.close();
csvFile = TestUtil.getTextCsvFile( "load01" );
data = csvManager.loadFromString( FileUtil.readFile(csvFile) );
assertEquals( loadcanon01, canon(data) );
assertEquals( 2, csvManager.getLineCount() );
data = csvManager.loadFromString( FileUtil.readFile(csvFile) );
assertEquals( loadcanon01, canon(data) );
assertEquals( 2, csvManager.getLineCount() );
csvFile = TestUtil.getTextCsvFile( "load02" );
data = csvManager.loadFromString( FileUtil.readFile(csvFile) );
assertEquals( loadcanon02, canon(data) );
assertEquals( 3, csvManager.getLineCount() );
csvFile = TestUtil.getTextCsvFile( "load03" );
data = csvManager.loadFromString( FileUtil.readFile(csvFile) );
assertEquals( loadcanon03, canon(data) );
assertEquals( 4, csvManager.getLineCount() );
}
private String canon( List pData ) throws Exception {
StringBuffer sb = new StringBuffer();
for( Iterator dI = pData.iterator(); dI.hasNext(); ) {
String[] da = (String[]) dI.next();
sb.append( Arrays.asList(da)+", " );
}
return sb.toString();
}
}