1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.dbunit;
22
23 import java.sql.SQLException;
24
25 import org.dbunit.database.DatabaseConfig;
26 import org.dbunit.database.IDatabaseConnection;
27 import org.dbunit.dataset.IDataSet;
28 import org.dbunit.dataset.ITable;
29 import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
30 import org.dbunit.dataset.xml.FlatXmlDataSetTest;
31 import org.dbunit.operation.DatabaseOperation;
32
33 import junit.framework.TestCase;
34
35
36
37
38
39
40
41 public class DBTestCaseIT extends TestCase
42 {
43
44
45
46
47
48
49 public void testConfigureConnection() throws Exception
50 {
51 DatabaseEnvironment dbEnv = DatabaseEnvironment.getInstance();
52 final IDatabaseConnection conn = dbEnv.getConnection();
53 final DefaultDatabaseTester tester = new DefaultDatabaseTester(conn);
54 final DatabaseOperation operation = new DatabaseOperation(){
55 public void execute(IDatabaseConnection connection, IDataSet dataSet)
56 throws DatabaseUnitException, SQLException {
57 assertEquals(new Integer(97), connection.getConfig().getProperty(DatabaseConfig.PROPERTY_BATCH_SIZE));
58 assertEquals(true, connection.getConfig().getFeature(DatabaseConfig.FEATURE_BATCHED_STATEMENTS));
59 }
60 };
61
62 DBTestCase testSubject = new DBTestCase() {
63
64
65
66
67 protected void setUpDatabaseConfig(DatabaseConfig config) {
68 config.setProperty(DatabaseConfig.PROPERTY_BATCH_SIZE, new Integer(97));
69 config.setFeature(DatabaseConfig.FEATURE_BATCHED_STATEMENTS, true);
70 }
71
72 protected IDatabaseTester newDatabaseTester() throws Exception {
73 return tester;
74 }
75
76 protected DatabaseOperation getSetUpOperation() throws Exception {
77 return operation;
78 }
79
80 protected DatabaseOperation getTearDownOperation() throws Exception {
81 return operation;
82 }
83
84 protected IDataSet getDataSet() throws Exception {
85 return null;
86 }
87 };
88
89
90 testSubject.setUp();
91
92 IDatabaseConnection actualConn = testSubject.getConnection();
93 assertEquals(new Integer(97), actualConn.getConfig().getProperty(DatabaseConfig.PROPERTY_BATCH_SIZE));
94 assertSame(conn, actualConn);
95
96 IDatabaseConnection actualConn2 = testSubject.getDatabaseTester().getConnection();
97 assertEquals(new Integer(97), actualConn2.getConfig().getProperty(DatabaseConfig.PROPERTY_BATCH_SIZE));
98 assertSame(tester, testSubject.getDatabaseTester());
99 assertSame(conn, testSubject.getDatabaseTester().getConnection());
100 }
101
102
103
104
105
106
107 public void testExecuteSetUpTearDown() throws Exception
108 {
109
110 DatabaseEnvironment dbEnv = DatabaseEnvironment.getInstance();
111
112 final IDatabaseConnection conn = dbEnv.getConnection();
113 try{
114 final DefaultDatabaseTester tester = new DefaultDatabaseTester(conn);
115 final IDataSet dataset = new FlatXmlDataSetBuilder().build(FlatXmlDataSetTest.DATASET_FILE);
116
117
118 DBTestCase testSubject = new DBTestCase() {
119
120 protected IDatabaseTester newDatabaseTester() throws Exception {
121 return tester;
122 }
123
124 protected DatabaseOperation getSetUpOperation() throws Exception {
125 return DatabaseOperation.CLEAN_INSERT;
126 }
127
128 protected DatabaseOperation getTearDownOperation() throws Exception {
129 return DatabaseOperation.DELETE_ALL;
130 }
131
132 protected IDataSet getDataSet() throws Exception {
133 return dataset;
134 }
135
136 protected IOperationListener getOperationListener() {
137 return new DefaultOperationListener(){
138 public void operationSetUpFinished(
139 IDatabaseConnection connection)
140 {
141
142
143 }
144
145 public void operationTearDownFinished(
146 IDatabaseConnection connection)
147 {
148
149
150 }
151
152 };
153 }
154
155
156 };
157
158
159 testSubject.setUp();
160
161 ITable testTableAfterSetup = conn.createTable("TEST_TABLE");
162 assertEquals(6, testTableAfterSetup.getRowCount());
163 assertFalse(conn.getConnection().isClosed());
164
165
166 testSubject.tearDown();
167
168 ITable testTableAfterTearDown = conn.createTable("TEST_TABLE");
169 assertEquals(0, testTableAfterTearDown.getRowCount());
170 assertFalse(conn.getConnection().isClosed());
171 }
172 finally{
173
174
175 dbEnv.closeConnection();
176 }
177 }
178
179 }