1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.dbunit.dataset.csv;
23
24
25 import java.io.File;
26 import java.io.IOException;
27
28 import junit.framework.TestCase;
29
30 import org.dbunit.Assertion;
31 import org.dbunit.dataset.DataSetException;
32 import org.dbunit.dataset.DataSetUtils;
33 import org.dbunit.dataset.IDataSet;
34 import org.dbunit.dataset.ITable;
35 import org.dbunit.testutil.TestUtils;
36 import org.dbunit.util.FileHelper;
37
38
39
40
41
42
43 public class CsvDataSetTest extends TestCase {
44 protected static final File DATASET_DIR = TestUtils.getFile("csv/orders");
45
46 public CsvDataSetTest(String s) {
47 super(s);
48 }
49
50 public void testNullColumns() throws DataSetException {
51 File csvDir = DATASET_DIR;
52
53 CsvDataSet dataSet = new CsvDataSet(csvDir);
54
55 ITable table = dataSet.getTable("orders");
56
57 assertNull(table.getValue(4, "description"));
58
59 }
60
61 public void testWrite() throws Exception {
62
63 IDataSet expectedDataSet = new CsvDataSet(DATASET_DIR);
64
65 File tempDir = createTmpDir();
66 try {
67
68 CsvDataSetWriter.write(expectedDataSet, tempDir);
69
70 File tableOrderingFile = new File(tempDir, CsvDataSet.TABLE_ORDERING_FILE);
71 assertTrue(tableOrderingFile.exists());
72
73 IDataSet actualDataSet = new CsvDataSet(tempDir);
74
75
76 assertEquals("table count", expectedDataSet.getTableNames().length,
77 actualDataSet.getTableNames().length);
78
79
80 ITable[] expected = DataSetUtils.getTables(expectedDataSet);
81 ITable[] actual = DataSetUtils.getTables(actualDataSet);
82 assertEquals("table count", expected.length, actual.length);
83 for (int i = 0; i < expected.length; i++) {
84 String expectedName = expected[i].getTableMetaData().getTableName();
85 String actualName = actual[i].getTableMetaData().getTableName();
86 assertEquals("table name", expectedName, actualName);
87
88 assertTrue("not same instance", expected[i] != actual[i]);
89 Assertion.assertEquals(expected[i], actual[i]);
90 }
91
92 } finally {
93 FileHelper.deleteDirectory(tempDir, true);
94
95 }
96
97
98 }
99
100 private File createTmpDir() throws IOException {
101 File tmpFile = File.createTempFile("CsvDataSetTest", "-csv");
102 String fullPath = tmpFile.getAbsolutePath();
103 tmpFile.delete();
104
105 File tmpDir = new File(fullPath);
106 if(!tmpDir.mkdir()) {
107 throw new IOException("Failed to create tmpDir: " + fullPath);
108 }
109
110 return tmpDir;
111 }
112
113 }
114
115
116
117