1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.dbunit.dataset.excel;
22
23 import java.io.File;
24 import java.math.BigDecimal;
25 import java.util.TimeZone;
26
27 import org.dbunit.dataset.AbstractTableTest;
28 import org.dbunit.dataset.Column;
29 import org.dbunit.dataset.IDataSet;
30 import org.dbunit.dataset.ITable;
31 import org.dbunit.dataset.datatype.DataType;
32 import org.dbunit.testutil.TestUtils;
33
34
35
36
37
38
39
40 public class XlsTableTest extends AbstractTableTest
41 {
42
43
44
45
46
47
48 public XlsTableTest(String s)
49 {
50 super(s);
51 }
52
53 protected ITable createTable() throws Exception
54 {
55 return createDataSet().getTable("TEST_TABLE");
56 }
57
58 protected IDataSet createDataSet() throws Exception
59 {
60 return new XlsDataSet(TestUtils.getFile("xml/tableTest.xls"));
61 }
62
63 public void testGetMissingValue() throws Exception
64 {
65 int row = 0;
66 Object[] expected = {"row 0 col 0", null, "row 0 col 2"};
67
68 ITable table = createDataSet().getTable("MISSING_VALUES");
69
70 Column[] columns = table.getTableMetaData().getColumns();
71 assertEquals("column count", expected.length, columns.length);
72 assertEquals("row count", 1, table.getRowCount());
73 for (int i = 0; i < columns.length; i++)
74 {
75 assertEquals("value " + i, expected[i],
76 table.getValue(row, columns[i].getColumnName()));
77 }
78 }
79
80 public void testEmptyTableColumns() throws Exception
81 {
82 Column[] expectedColumns = new Column[] {
83 new Column("COLUMN0", DataType.UNKNOWN),
84 new Column("COLUMN1", DataType.UNKNOWN),
85 new Column("COLUMN2", DataType.UNKNOWN),
86 new Column("COLUMN3", DataType.UNKNOWN)
87 };
88 ITable table = createDataSet().getTable("EMPTY_TABLE");
89
90 Column[] columns = table.getTableMetaData().getColumns();
91 assertEquals("Column count", expectedColumns.length, columns.length);
92 for (int i = 0; i < columns.length; i++) {
93 assertEquals("Column " + i, expectedColumns[i], columns[i]);
94 }
95 }
96
97 public void testEmptySheet() throws Exception
98 {
99 ITable table = createDataSet().getTable("EMPTY_SHEET");
100
101 Column[] columns = table.getTableMetaData().getColumns();
102 assertEquals("Column count", 0, columns.length);
103 }
104
105
106 public void testDifferentDatatypes() throws Exception
107 {
108 int row = 0;
109 ITable table = createDataSet().getTable("TABLE_DIFFERENT_DATATYPES");
110
111
112 Object[] expected = {
113
114
115
116
117
118
119 new Long(0),
120 new Long(38700000),
121 new Long(-2209026545000L),
122 new BigDecimal("10000.00"),
123 new BigDecimal("-200"),
124 new BigDecimal("12345.123456789000"),
125 new Long(1233398764000L),
126 new Long(1233332866000L)
127 };
128
129 Column[] columns = table.getTableMetaData().getColumns();
130 assertEquals("column count", expected.length, columns.length);
131 for (int i = 0; i < columns.length; i++)
132 {
133 Object actual = table.getValue(row, columns[i].getColumnName());
134 String typesResult = " expected=" + (expected[i]!=null ? expected[i].getClass().getName() : "null") + " - actual="
135 + (actual!=null ? actual.getClass().getName() : "null");
136 assertEquals("value " + i + " (" + typesResult + ")", expected[i], actual);
137 }
138 }
139
140 public void testNumberAsText() throws Exception
141 {
142 int row = 0;
143 ITable table = createDataSet().getTable("TABLE_NUMBER_AS_TEXT");
144
145 String[] expected = {
146 "0",
147 "666",
148 "66.6",
149 "66.6",
150 "-6.66"
151 };
152
153 Column[] columns = table.getTableMetaData().getColumns();
154 assertEquals("column count", expected.length, columns.length);
155 for (int i = 0; i < columns.length; i++)
156 {
157 String columnName = columns[i].getColumnName();
158 Object actual = table.getValue(row, columnName).toString();
159 assertEquals(columns[i].getColumnName(),expected[i],actual);
160 }
161 }
162 }