package com.ricebridge.csvman.test;
import com.ricebridge.csvman.*;
import com.ricebridge.data.sc.*;
import com.ricebridge.data.BeanSpec;
import com.ricebridge.data.Text;
import org.jostraca.util.*;
import junit.framework.*;
import junit.textui.*;
import java.util.*;
import java.io.*;
import java.text.*;
public class SaveTest extends TestCase {
public SaveTest( String pName ) {
super( pName );
}
public static TestSuite suite() {
return new TestSuite( SaveTest.class );
}
public static void main( String[] pArgs ) {
TestRunner.run( suite() );
}
public void testExample() throws Exception {
File csvFile = null;
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"} );
csvManager.save( csvFile, data );
assertEquals( "r1,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"} );
String savecanon = "b1,q1\nb2,q2\n";
File csvFile = null;
csvFile = TestUtil.getTextCsvFile( "save" );
CsvManager csvManager = new CsvManager();
FileUtil.writeFile(csvFile,"");
csvManager.save( csvFile, data );
assertEquals( savecanon, FileUtil.readFile(csvFile) );
FileUtil.writeFile(csvFile,"");
csvManager.save( csvFile.getAbsolutePath(), data );
assertEquals( savecanon, FileUtil.readFile(csvFile) );
FileUtil.writeFile(csvFile,"");
OutputStream is = new FileOutputStream( csvFile );
csvManager.save( is, data );
assertEquals( savecanon, FileUtil.readFile(csvFile) );
is.close();
FileUtil.writeFile(csvFile,"");
FileWriter fw = new FileWriter( csvFile );
csvManager.save( fw, data );
assertEquals( savecanon, FileUtil.readFile(csvFile) );
fw.close();
Text bt = new Text();
csvManager.setCsvSpec( csvManager.makeUnixSpec() );
csvManager.save( bt, data );
assertEquals( savecanon, bt.getText() );
}
public void testRepeats() throws Exception {
ArrayList data1 = new ArrayList();
data1.add( new String[] {"b1","q1"} );
data1.add( new String[] {"b2","q2"} );
String savecanon1 = "b1,q1\nb2,q2\n";
File csvFile = null;
csvFile = TestUtil.getTextCsvFile( "save" );
CsvManager csvManager = new CsvManager();
csvManager.setCsvSpec( csvManager.makeUnixSpec() );
FileUtil.writeFile(csvFile,"");
csvManager.save( csvFile, data1 );
assertEquals( savecanon1, FileUtil.readFile(csvFile) );
FileUtil.writeFile(csvFile,"");
csvManager.save( csvFile.getAbsolutePath(), data1 );
assertEquals( savecanon1, FileUtil.readFile(csvFile) );
FileUtil.writeFile(csvFile,"");
OutputStream os = new FileOutputStream( csvFile );
csvManager.save( os, data1 );
assertEquals( savecanon1, FileUtil.readFile(csvFile) );
os.close();
FileUtil.writeFile(csvFile,"");
FileWriter fw = new FileWriter( csvFile );
csvManager.save( fw, data1 );
assertEquals( savecanon1, FileUtil.readFile(csvFile) );
fw.close();
Text text = new Text();
csvManager.save( text, data1 );
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"} );
String savecanon2 = "2b1,2q1\n2b2,2q2\n2b3,2q3\n";
FileUtil.writeFile(csvFile,"");
csvManager.save( csvFile, data2 );
assertEquals( savecanon2, FileUtil.readFile(csvFile) );
FileUtil.writeFile(csvFile,"");
csvManager.save( csvFile.getAbsolutePath(), data2 );
assertEquals( savecanon2, FileUtil.readFile(csvFile) );
FileUtil.writeFile(csvFile,"");
os = new FileOutputStream( csvFile );
csvManager.save( os, data2 );
assertEquals( savecanon2, FileUtil.readFile(csvFile) );
os.close();
FileUtil.writeFile(csvFile,"");
fw = new FileWriter( csvFile );
csvManager.save( fw, data2 );
assertEquals( savecanon2, FileUtil.readFile(csvFile) );
fw.close();
text = new Text();
csvManager.save( text, data2 );
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"} );
String savecanon3 = "3b1,3q1\n3b2,3q2\n3b3,3q3\n3b4,3q4\n";
FileUtil.writeFile(csvFile,"");
csvManager.save( csvFile, data3 );
assertEquals( savecanon3, FileUtil.readFile(csvFile) );
FileUtil.writeFile(csvFile,"");
csvManager.save( csvFile.getAbsolutePath(), data3 );
assertEquals( savecanon3, FileUtil.readFile(csvFile) );
FileUtil.writeFile(csvFile,"");
os = new FileOutputStream( csvFile );
csvManager.save( os, data3 );
assertEquals( savecanon3, FileUtil.readFile(csvFile) );
os.close();
FileUtil.writeFile(csvFile,"");
fw = new FileWriter( csvFile );
csvManager.save( fw, data3 );
assertEquals( savecanon3, FileUtil.readFile(csvFile) );
fw.close();
text = new Text();
csvManager.save( text, data3 );
assertEquals( savecanon3, text.toString() );
}
private String canon( List pData ) throws Exception {
return pData.toString();
}
}