6b5462dac3f00320f1a4b0b4cbdeebc0344fffbb
[squelch.git] / src / test / java / net / jaekl / squelch / stmt / TabularTest.java
1 package net.jaekl.squelch.stmt;
2
3 import static org.junit.Assert.*;
4
5 import java.sql.SQLException;
6 import java.sql.Types;
7
8 import net.jaekl.squelch.sql.Column;
9 import net.jaekl.squelch.sql.Row;
10
11 import org.junit.Test;
12
13 public class TabularTest {
14         private static class TabularMock extends Tabular {
15                 @Override
16                 Column[] getCols() throws SQLException {
17                         return null;
18                 }
19
20                 @Override
21                 Row getNext() {
22                         return null;
23                 }
24         }
25         
26         @Test
27         public void test_classForSqlType() {
28                 Object[][] data = { 
29                                 { Types.ARRAY, Object.class },
30                                 { Types.BIGINT, Object.class },
31                                 { Types.BINARY, Object.class },
32                                 { Types.BIT, Object.class },
33                                 { Types.BLOB, Object.class },
34                                 { Types.BOOLEAN, Boolean.class },
35                                 { Types.CHAR, Character.class },
36                                 { Types.CLOB, Object.class },
37                                 { Types.DATALINK, Object.class },
38                                 { Types.DATE, java.util.Date.class },
39                                 { Types.DECIMAL, Double.class },
40                                 { Types.DISTINCT, Object.class },
41                                 { Types.DOUBLE, Double.class },
42                                 { Types.FLOAT, Double.class },
43                                 { Types.INTEGER, Long.class },
44                                 { Types.JAVA_OBJECT, Object.class },
45                                 { Types.LONGNVARCHAR, String.class },
46                                 { Types.LONGVARBINARY, Object.class },
47                                 { Types.NCHAR, String.class },
48                                 { Types.NCLOB, Object.class },
49                                 { Types.NULL, Object.class },
50                                 { Types.NUMERIC, Double.class },
51                                 { Types.NVARCHAR, String.class },
52                                 { Types.OTHER, Object.class },
53                                 { Types.REAL, Double.class },
54                                 { Types.REF, Object.class },
55                                 { Types.ROWID, Integer.class },
56                                 { Types.SMALLINT, Integer.class },
57                                 { Types.SQLXML, Object.class },
58                                 { Types.STRUCT, Object.class },
59                                 { Types.TIME, java.util.Date.class },
60                                 { Types.TIMESTAMP, java.util.Date.class },
61                                 { Types.TINYINT, Short.class },
62                                 { Types.VARBINARY, Object.class },
63                                 { Types.VARCHAR, String.class }
64                 };
65                 Tabular tabular = new TabularMock();
66                 
67                 for (Object[] datum : data) {
68                         Class<?> expected = (Class<?>)datum[1];
69                         Class<?> actual = tabular.classForSqlType((int) datum[0]);
70                         assertEquals(expected, actual);
71                 }
72         }
73
74         @Test
75         public void test_repChar() {
76                 Tabular tabular = new TabularMock();
77                 
78                 assertEquals("", tabular.repChar(' ', 0));
79                 assertEquals("    ", tabular.repChar(' ', 4));
80                 assertEquals("###", tabular.repChar('#', 3));
81                 assertEquals("------", tabular.repChar('-', 6));
82         }
83
84         @Test
85         public void test_centrePad() {
86                 Tabular tabular = new TabularMock();
87                 
88                 assertEquals("Vestibule", tabular.centrePad("Vestibule", 2));
89                 assertEquals("  Fred  ", tabular.centrePad("Fred", 8));
90                 assertEquals("NULL", tabular.centrePad(null, 0));
91                 assertEquals("  NULL  ", tabular.centrePad(null, 8));
92                 assertEquals("   Wilma    ", tabular.centrePad("Wilma", 12));
93         }
94 }