1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package net.sourceforge.addam.ddlgen.generic;
20
21 import com.mockrunner.jdbc.JDBCTestCaseAdapter;
22 import com.mockrunner.jdbc.StatementResultSetHandler;
23 import com.mockrunner.mock.jdbc.MockConnection;
24 import com.mockrunner.mock.jdbc.MockDatabaseMetaData;
25 import com.mockrunner.mock.jdbc.MockResultSet;
26
27 import net.sourceforge.addam.ddlgen.generic.InsertGenerator;
28
29 import org.apache.velocity.VelocityContext;
30
31 import java.sql.SQLException;
32 import java.sql.Types;
33 import java.util.Date;
34 import java.util.List;
35
36 /**
37 * User: mkrishna
38 * Date: Nov 18, 2004
39 */
40 public class InsertGeneratorUTEST extends JDBCTestCaseAdapter {
41
42 public void testInsertSQLGeneratorCreatesObjectsProperly() throws Exception {
43 MockConnection connection = getConnection();
44 net.sourceforge.addam.ddlgen.generic.InsertGenerator generator = new InsertGenerator();
45 VelocityContext context = generator.getContext(null, null, "testforeignKey", connection, null);
46 List<List> rows = (List<List>)context.get("rows");
47 assertEquals(1, rows.size());
48 assertEquals("'column1'", (rows.get(0)).get(0));
49 assertEquals("'column2'", (rows.get(0)).get(1));
50
51 verifyAllResultSetsClosed();
52 verifyAllStatementsClosed();
53 }
54
55 public void testGetFormattedString() {
56 InsertGenerator insertGenerator = new InsertGenerator();
57 String formattedString = insertGenerator.getFormattedString("column3", Types.VARCHAR);
58 assertEquals("'column3'", formattedString);
59
60 formattedString = insertGenerator.getFormattedString(null, Types.VARCHAR);
61 assertEquals("null", formattedString);
62
63 formattedString = insertGenerator.getFormattedString("2004-11-23 17:20:20.0", Types.DATE);
64 assertEquals("to_timestamp ('2004-11-23 17:20:20.0', 'yyyy-mm-dd HH24:MI:SS.FF')", formattedString);
65 }
66
67 private MockConnection getConnection() throws SQLException {
68 MockConnection connection;
69 connection = getJDBCMockObjectFactory().getMockConnection();
70 StatementResultSetHandler statementHandler = connection.getStatementResultSetHandler();
71 MockDatabaseMetaData mockDatabaseMetaData = new MockDatabaseMetaData();
72 MockResultSet result = new MockResultSet("some String");
73 mockDatabaseMetaData.setColumns(result);
74 result.addRow(new Object[]{"column1", "column2", new Date(234234)});
75 statementHandler.prepareGlobalResultSet(result);
76 connection.setMetaData(mockDatabaseMetaData);
77 return connection;
78 }
79 }