package com.ricebridge.csvman.test;
import com.ricebridge.csvman.*;
import com.ricebridge.data.Text;
import org.jostraca.util.*;
import junit.framework.*;
import junit.textui.*;
import java.util.*;
import java.io.*;
import java.sql.*;
public class SaveTableModelTest extends TestCase {
public SaveTableModelTest( String pName ) {
super( pName );
}
public static TestSuite suite() {
return new TestSuite( SaveTableModelTest.class );
}
public static void main( String[] pArgs ) {
TestRunner.run( suite() );
}
public void testExample() throws Exception {
File csvFile = TestUtil.getTextCsvFile( "save" );
CsvManager csvManager = new CsvManager();
ArrayList data = new ArrayList();
data.add( new String[] {"r1","f1","b1"} );
data.add( new String[] {"r2","f2","b2"} );
data.add( new String[] {"r3","f3","b3"} );
CsvTableModel tm = new CsvTableModel( data );
csvManager.save( csvFile, tm, false );
assertEquals( "r1,f1,b1\nr2,f2,b2\nr3,f3,b3\n", FileUtil.readFile(csvFile) );
csvManager.save( csvFile, tm, true );
assertEquals( "Column 1,Column 2,Column 3\nr1,f1,b1\nr2,f2,b2\nr3,f3,b3\n", FileUtil.readFile(csvFile) );
}
public void testSingle() throws Exception {
ArrayList data = new ArrayList();
data.add( new String[] {"b1","q1"} );
data.add( new String[] {"b2","q2"} );
CsvTableModel tm = new CsvTableModel( data );
String savecanon = "b1,q1\nb2,q2\n";
String savecanonh = "Column 1,Column 2\nb1,q1\nb2,q2\n";
File csvFile = null;
csvFile = TestUtil.getTextCsvFile( "save" );
CsvManager csvManager = new CsvManager();
FileUtil.writeFile(csvFile,"");
csvManager.save( csvFile, tm, false );
assertEquals( savecanon, FileUtil.readFile(csvFile) );
FileUtil.writeFile(csvFile,"");
csvManager.save( csvFile, tm, true );
assertEquals( savecanonh, FileUtil.readFile(csvFile) );
FileUtil.writeFile(csvFile,"");
csvManager.save( csvFile.getAbsolutePath(), tm, false );
assertEquals( savecanon, FileUtil.readFile(csvFile) );
FileUtil.writeFile(csvFile,"");
csvManager.save( csvFile.getAbsolutePath(), tm, true );
assertEquals( savecanonh, FileUtil.readFile(csvFile) );
OutputStream os = null;
FileUtil.writeFile(csvFile,"");
os = new FileOutputStream( csvFile );
csvManager.save( os, tm, false );
assertEquals( savecanon, FileUtil.readFile(csvFile) );
os.close();
FileUtil.writeFile(csvFile,"");
os = new FileOutputStream( csvFile );
csvManager.save( os, tm, true );
assertEquals( savecanonh, FileUtil.readFile(csvFile) );
os.close();
FileUtil.writeFile(csvFile,"");
FileWriter fw = new FileWriter( csvFile );
csvManager.saveTableModel( fw, tm );
assertEquals( savecanon, FileUtil.readFile(csvFile) );
fw.close();
Text bt = new Text();
csvManager.setCsvSpec( csvManager.makeUnixSpec() );
csvManager.saveTableModel( bt, tm );
assertEquals( savecanon, bt.getText() );
csvManager.setCsvSpec( csvManager.makeUnixSpec() );
String out = null;
out = csvManager.saveToString( tm, false );
assertEquals( savecanon, out );
out = csvManager.saveToString( tm, true );
assertEquals( savecanonh, out );
}
public void testRepeats() throws Exception {
ArrayList data1 = new ArrayList();
data1.add( new String[] {"b1","q1"} );
data1.add( new String[] {"b2","q2"} );
CsvTableModel tm1 = new CsvTableModel( data1 );
String savecanon1 = "b1,q1\nb2,q2\n";
File csvFile = null;
csvFile = TestUtil.getTextCsvFile( "saveTableModel" );
CsvManager csvManager = new CsvManager();
csvManager.setCsvSpec( csvManager.makeUnixSpec() );
FileUtil.writeFile(csvFile,"");
csvManager.saveTableModel( csvFile, tm1 );
assertEquals( savecanon1, FileUtil.readFile(csvFile) );
FileUtil.writeFile(csvFile,"");
csvManager.saveTableModel( csvFile.getAbsolutePath(), tm1 );
assertEquals( savecanon1, FileUtil.readFile(csvFile) );
FileUtil.writeFile(csvFile,"");
OutputStream os = new FileOutputStream( csvFile );
csvManager.saveTableModel( os, tm1 );
assertEquals( savecanon1, FileUtil.readFile(csvFile) );
os.close();
FileUtil.writeFile(csvFile,"");
FileWriter fw = new FileWriter( csvFile );
csvManager.saveTableModel( fw, tm1 );
assertEquals( savecanon1, FileUtil.readFile(csvFile) );
fw.close();
Text text = new Text();
csvManager.saveTableModel( text, tm1 );
assertEquals( savecanon1, text.toString() );
ArrayList data2 = new ArrayList();
data2.add( new String[] {"2b1","2q1"} );
data2.add( new String[] {"2b2","2q2"} );
data2.add( new String[] {"2b3","2q3"} );
CsvTableModel tm2 = new CsvTableModel( data2 );
String savecanon2 = "2b1,2q1\n2b2,2q2\n2b3,2q3\n";
FileUtil.writeFile(csvFile,"");
csvManager.saveTableModel( csvFile, tm2 );
assertEquals( savecanon2, FileUtil.readFile(csvFile) );
FileUtil.writeFile(csvFile,"");
csvManager.saveTableModel( csvFile.getAbsolutePath(), tm2 );
assertEquals( savecanon2, FileUtil.readFile(csvFile) );
FileUtil.writeFile(csvFile,"");
os = new FileOutputStream( csvFile );
csvManager.saveTableModel( os, tm2 );
assertEquals( savecanon2, FileUtil.readFile(csvFile) );
os.close();
FileUtil.writeFile(csvFile,"");
fw = new FileWriter( csvFile );
csvManager.saveTableModel( fw, tm2 );
assertEquals( savecanon2, FileUtil.readFile(csvFile) );
fw.close();
text = new Text();
csvManager.saveTableModel( text, tm2 );
assertEquals( savecanon2, text.toString() );
ArrayList data3 = new ArrayList();
data3.add( new String[] {"3b1","3q1"} );
data3.add( new String[] {"3b2","3q2"} );
data3.add( new String[] {"3b3","3q3"} );
data3.add( new String[] {"3b4","3q4"} );
CsvTableModel tm3 = new CsvTableModel( data3 );
String savecanon3 = "3b1,3q1\n3b2,3q2\n3b3,3q3\n3b4,3q4\n";
FileUtil.writeFile(csvFile,"");
csvManager.saveTableModel( csvFile, tm3 );
assertEquals( savecanon3, FileUtil.readFile(csvFile) );
FileUtil.writeFile(csvFile,"");
csvManager.saveTableModel( csvFile.getAbsolutePath(), tm3 );
assertEquals( savecanon3, FileUtil.readFile(csvFile) );
FileUtil.writeFile(csvFile,"");
os = new FileOutputStream( csvFile );
csvManager.saveTableModel( os, tm3 );
assertEquals( savecanon3, FileUtil.readFile(csvFile) );
os.close();
FileUtil.writeFile(csvFile,"");
fw = new FileWriter( csvFile );
csvManager.saveTableModel( fw, tm3 );
assertEquals( savecanon3, FileUtil.readFile(csvFile) );
fw.close();
text = new Text();
csvManager.saveTableModel( text, tm3 );
assertEquals( savecanon3, text.toString() );
}
}