import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Reader;
import java.io.Writer;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.util.ArrayList;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import com.csvreader.CsvReader;
import com.csvreader.CsvWriter;
public class AllTests {
public static void main(String[] args) throws Exception {
Class testClass = AllTests.class;
ArrayList<Method> setups = new ArrayList<Method>();
ArrayList<Method> tearDowns = new ArrayList<Method>();
for (Method method : testClass.getDeclaredMethods()) {
int modifiers = method.getModifiers();
if (Modifier.isPublic(modifiers) && !Modifier.isStatic(modifiers)
&& method.getAnnotation(Ignore.class) == null) {
if (method.getAnnotation(Before.class) != null) {
setups.add(method);
}
if (method.getAnnotation(After.class) != null) {
setups.add(method);
}
}
}
System.out.println("Starting all tests.");
Object instance = testClass.newInstance();
for (Method method : testClass.getDeclaredMethods()) {
int modifiers = method.getModifiers();
if (Modifier.isPublic(modifiers) && !Modifier.isStatic(modifiers)
&& method.getAnnotation(Ignore.class) == null) {
Test testAnnotation = method.getAnnotation(Test.class);
if (testAnnotation != null) {
for (Method setup : setups) {
setup.invoke(instance, (Object[]) null);
}
Class expectedException = testAnnotation.expected();
// can't for the life of me get eclipse to be able to
// resolve Test.None directly
if (expectedException.getName().equals(
"org.junit.Test$None")) // why the hell doesn't this
// just return null?
{
expectedException = null;
}
try {
method.invoke(instance, (Object[]) null);
} catch (Exception e) {
if (expectedException == null) {
System.out.println(testClass.getName() + "."
+ method.getName() + ": "
+ e.getCause().getMessage());
new BufferedReader(new InputStreamReader(System.in))
.readLine();
} else {
// is there a cleaner way of saying this?
if (!e.getCause().getClass().equals(
testAnnotation.expected())) {
System.out.println(testClass.getName() + "."
+ method.getName() + ": "
+ "Exception expected: "
+ testAnnotation.expected().getName()
+ ", Exception thrown: "
+ e.getCause().getMessage());
new BufferedReader(new InputStreamReader(
System.in)).readLine();
}
expectedException = null;
}
}
if (expectedException != null) {
System.out.println(testClass.getName() + "."
+ method.getName() + ": "
+ "Expected exception not thrown: "
+ testAnnotation.expected().getName());
new BufferedReader(new InputStreamReader(System.in))
.readLine();
}
for (Method tearDown : tearDowns) {
tearDown.invoke(instance, (Object[]) null);
}
} // end if (testAnnotation != null)
} // end if (Modifier.isPublic(modifiers)...
} // end for (Method method : testClass.getDeclaredMethods())
System.out.println("Done with all tests.");
}
private static String generateString(char letter, int count) {
StringBuffer buffer = new StringBuffer(count);
for (int i = 0; i < count; i++) {
buffer.append(letter);
}
return buffer.toString();
}
private static void assertException(Exception expected, Exception actual) {
Assert.assertEquals(expected.getClass(), actual.getClass());
Assert.assertEquals(expected.getMessage(), actual.getMessage());
}
@Test
public void test1() throws Exception {
CsvReader reader = CsvReader.parse("1,2");
Assert.assertEquals("", reader.getRawRecord());
Assert.assertEquals("", reader.get(0));
Assert.assertTrue(reader.readRecord());
Assert.assertEquals("1", reader.get(0));
Assert.assertEquals("2", reader.get(1));
Assert.assertEquals(',', reader.getDelimiter());
Assert.assertEquals(0L, reader.getCurrentRecord());
Assert.assertEquals(2, reader.getColumnCount());
Assert.assertEquals("1,2", reader.getRawRecord());
Assert.assertFalse(reader.readRecord());
Assert.assertEquals("", reader.getRawRecord());
reader.close();
}
@Test
public void test2() throws Exception {
String data = "\"bob said, \"\"Hey!\"\"\",2, 3 ";
CsvReader reader = CsvReader.parse(data);
Assert.assertTrue(reader.readRecord());
Assert.assertEquals("bob said, \"Hey!\"", reader.get(0));
Assert.assertEquals("2", reader.get(1));
Assert.assertEquals("3", reader.get(2));
Assert.assertEquals(',', reader.getDelimiter());
Assert.assertEquals(0L, reader.getCurrentRecord());
Assert.assertEquals(3, reader.getColumnCount());
Assert.assertEquals("\"bob said, \"\"Hey!\"\"\",2, 3 ", reader
.getRawRecord());
Assert.assertFalse(reader.readRecord());
Assert.assertEquals("", reader.getRawRecord());
reader.close();
}
@Test
public void test3() throws Exception {
String data = ",";
CsvReader reader = CsvReader.parse(data);
Assert.assertTrue(reader.readRecord());
Assert.assertEquals("", reader.get(0));
Assert.assertEquals("", reader.get(1));
Assert.assertEquals(',', reader.getDelimiter());
Assert.assertEquals(0L, reader.getCurrentRecord());
Assert.assertEquals(2, reader.getColumnCount());
Assert.assertEquals(",", reader.getRawRecord());
Assert.assertFalse(reader.readRecord());
Assert.assertEquals("", reader.getRawRecord());
reader.close();
}
@Test
public void test4() throws Exception {
String data = "1\r2";
CsvReader reader = CsvReader.parse(data);
Assert.assertTrue(reader.readRecord());
Assert.assertEquals("1", reader.get(0));
Assert.assertEquals(0L, reader.getCurrentRecord());
Assert.assertEquals(1, reader.getColumnCount());
Assert.assertEquals("1", reader.getRawRecord());
Assert.assertTrue(reader.readRecord());
Assert.assertEquals("2", reader.get(0));
Assert.assertEquals(1L, reader.getCurrentRecord());
Assert.assertEquals(1, reader.getColumnCount());
Assert.assertEquals("2", reader.getRawRecord());
Assert.assertFalse(reader.readRecord());
Assert.assertEquals("", reader.getRawRecord());
reader.close();
}
@Test
public void test5() throws Exception {
String data = "1\n2";
CsvReader reader = CsvReader.parse(data);
Assert.assertTrue(reader.readRecord());
Assert.assertEquals("1", reader.get(0));
Assert.assertEquals(0L, reader.getCurrentRecord());
Assert.assertEquals(1, reader.getColumnCount());
Assert.assertEquals("1", reader.getRawRecord());
Assert.assertTrue(reader.readRecord());
Assert.assertEquals("2", reader.get(0));
Assert.assertEquals(1L, reader.getCurrentRecord());
Assert.assertEquals(1, reader.getColumnCount());
Assert.assertEquals("2", reader.getRawRecord());
Assert.assertFalse(reader.readRecord());
Assert.assertEquals("", reader.getRawRecord());
reader.close();
}
@Test
public void test6() throws Exception {
String data = "1\r\n2";
CsvReader reader = CsvReader.parse(data);
Assert.assertTrue(reader.readRecord());
Assert.assertEquals("1", reader.get(0));
Assert.assertEquals(0L, reader.getCurrentRecord());
Assert.assertEquals(1, reader.getColumnCount());
Assert.assertEquals("1", reade
评论0
最新资源