1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 package pl.kernelpanic.dbmonster.test;
48
49 import java.net.URL;
50 import java.sql.Connection;
51 import java.sql.ResultSet;
52 import java.sql.Statement;
53 import java.util.Properties;
54
55 import junit.framework.TestCase;
56 import pl.kernelpanic.dbmonster.DBMonster;
57 import pl.kernelpanic.dbmonster.connection.ConnectionProvider;
58 import pl.kernelpanic.dbmonster.connection.DBCPConnectionProvider;
59 import pl.kernelpanic.dbmonster.schema.Schema;
60 import pl.kernelpanic.dbmonster.schema.SchemaUtil;
61
62 /***
63 * DBMonster test.
64 *
65 * @author Piotr Maj <piotr.maj@kernelpanic.pl>
66 *
67 * @version $Id: DBMonsterTest.html,v 1.1 2007/06/21 08:38:14 sbahloul Exp $
68 */
69 public class DBMonsterTest extends TestCase {
70
71 public final void testDBMonster() throws Exception {
72 String driver = "org.hsqldb.jdbcDriver";
73 String url = "jdbc:hsqldb:.";
74 String user = "sa";
75 String pass = "";
76
77 Properties props = new Properties();
78 props.put("dbmonster.jdbc.driver", driver);
79 props.put("dbmonster.jdbc.url", url);
80 props.put("dbmonster.jdbc.username", user);
81 props.put("dbmonster.jdbc.password", pass);
82 props.put("dbmonster.max-tries", "1000");
83
84 ConnectionProvider cp =
85 new DBCPConnectionProvider(driver, url, user, pass);
86
87 Connection conn = cp.getConnection();
88 Statement stmt = conn.createStatement();
89 try {
90 stmt.executeUpdate(
91 "CREATE TABLE users (id int not null,"
92 + "login varchar(255) not null, id_group int)");
93
94 stmt.executeUpdate(
95 "CREATE TABLE groups (id int not null,"
96 + "name varchar(255) not null, description varchar)");
97 stmt.executeUpdate(
98 "CREATE TABLE DEFAULT_TEST (id identity,"
99 + "name varchar(255) not null)");
100 stmt.executeUpdate(
101 "CREATE TABLE CONSTANT_TEST (f_i int, "
102 + " f_s varchar, f_t timestamp, f_f float)");
103 stmt.close();
104 conn.commit();
105 conn.close();
106 } catch (Exception e) {
107 System.out.println(e.getMessage());
108
109 }
110
111 DBMonster dbm = new DBMonster();
112 dbm.setConnectionProvider(cp);
113 dbm.setProperties(props);
114 String u = "/pl/kernelpanic/dbmonster/test/resources/dbmonster-schema.xml";
115 URL ur = getClass().getResource(u);
116 Schema schema = SchemaUtil.loadSchema(ur, dbm.getLogger());
117 dbm.addSchema(schema);
118 try {
119 dbm.doTheJob();
120 conn = cp.getConnection();
121 stmt = conn.createStatement();
122 ResultSet rs = stmt.executeQuery("SELECT * FROM CONSTANT_TEST");
123 while (rs.next()) {
124 if (10 != rs.getInt("f_i")) {
125 throw new Exception("Constant generator failed.");
126 }
127 if (!"blah".equals(rs.getString("f_s"))) {
128 throw new Exception("Constant generator failed.");
129 }
130 if (1.5 != rs.getFloat("f_f")) {
131 throw new Exception("Constant generator failed.");
132 }
133 }
134 } catch (Exception e) {
135 e.printStackTrace();
136 throw e;
137 }
138 }
139 }