99 *
1010 * PS: Do you know how difficult it is to type on a train? ;-)
1111 *
12- * $Id: DatabaseMetaDataTest.java,v 1.1 2001/02/13 16:39:05 peter Exp $
12+ * $Id: DatabaseMetaDataTest.java,v 1.2 2001/09/10 15:07:58 momjian Exp $
1313 */
1414
1515public class DatabaseMetaDataTest extends TestCase {
@@ -29,11 +29,11 @@ public void testGetMetaData() {
2929Connection con =JDBC2Tests .openDB ();
3030
3131DatabaseMetaData dbmd =con .getMetaData ();
32- assert (dbmd != null );
32+ assertNotNull (dbmd );
3333
3434JDBC2Tests .closeDB (con );
3535 }catch (SQLException ex ) {
36- assert (ex .getMessage (), false );
36+ fail (ex .getMessage ());
3737 }
3838 }
3939
@@ -45,32 +45,32 @@ public void testCapabilities() {
4545Connection con =JDBC2Tests .openDB ();
4646
4747DatabaseMetaData dbmd =con .getMetaData ();
48- assert (dbmd != null );
48+ assertNotNull (dbmd );
4949
50- assert (dbmd .allProceduresAreCallable ()== true );
51- assert (dbmd .allTablesAreSelectable ()== true );// not true all the time
50+ assertTrue (dbmd .allProceduresAreCallable ());
51+ assertTrue (dbmd .allTablesAreSelectable ());// not true all the time
5252
5353// This should always be false for postgresql (at least for 7.x)
54- assert (!dbmd .isReadOnly ());
54+ assertTrue (!dbmd .isReadOnly ());
5555
5656// does the backend support this yet? The protocol does...
57- assert (!dbmd .supportsMultipleResultSets ());
57+ assertTrue (!dbmd .supportsMultipleResultSets ());
5858
5959// yes, as multiple backends can have transactions open
60- assert (dbmd .supportsMultipleTransactions ());
60+ assertTrue (dbmd .supportsMultipleTransactions ());
6161
62- assert (dbmd .supportsMinimumSQLGrammar ());
63- assert (!dbmd .supportsCoreSQLGrammar ());
64- assert (!dbmd .supportsExtendedSQLGrammar ());
65- assert (!dbmd .supportsANSI92EntryLevelSQL ());
66- assert (!dbmd .supportsANSI92IntermediateSQL ());
67- assert (!dbmd .supportsANSI92FullSQL ());
62+ assertTrue (dbmd .supportsMinimumSQLGrammar ());
63+ assertTrue (!dbmd .supportsCoreSQLGrammar ());
64+ assertTrue (!dbmd .supportsExtendedSQLGrammar ());
65+ assertTrue (!dbmd .supportsANSI92EntryLevelSQL ());
66+ assertTrue (!dbmd .supportsANSI92IntermediateSQL ());
67+ assertTrue (!dbmd .supportsANSI92FullSQL ());
6868
69- assert (!dbmd .supportsIntegrityEnhancementFacility ());
69+ assertTrue (!dbmd .supportsIntegrityEnhancementFacility ());
7070
7171JDBC2Tests .closeDB (con );
7272 }catch (SQLException ex ) {
73- assert (ex .getMessage (), false );
73+ fail (ex .getMessage ());
7474 }
7575 }
7676
@@ -80,15 +80,15 @@ public void testJoins() {
8080Connection con =JDBC2Tests .openDB ();
8181
8282DatabaseMetaData dbmd =con .getMetaData ();
83- assert (dbmd != null );
83+ assertNotNull (dbmd );
8484
85- assert (dbmd .supportsOuterJoins ());
86- assert (dbmd .supportsFullOuterJoins ());
87- assert (dbmd .supportsLimitedOuterJoins ());
85+ assertTrue (dbmd .supportsOuterJoins ());
86+ assertTrue (dbmd .supportsFullOuterJoins ());
87+ assertTrue (dbmd .supportsLimitedOuterJoins ());
8888
8989JDBC2Tests .closeDB (con );
9090 }catch (SQLException ex ) {
91- assert (ex .getMessage (), false );
91+ fail (ex .getMessage ());
9292 }
9393 }
9494
@@ -97,14 +97,14 @@ public void testCursors() {
9797Connection con =JDBC2Tests .openDB ();
9898
9999DatabaseMetaData dbmd =con .getMetaData ();
100- assert (dbmd != null );
100+ assertNotNull (dbmd );
101101
102- assert (!dbmd .supportsPositionedDelete ());
103- assert (!dbmd .supportsPositionedUpdate ());
102+ assertTrue (!dbmd .supportsPositionedDelete ());
103+ assertTrue (!dbmd .supportsPositionedUpdate ());
104104
105105JDBC2Tests .closeDB (con );
106106 }catch (SQLException ex ) {
107- assert (ex .getMessage (), false );
107+ fail (ex .getMessage ());
108108 }
109109 }
110110
@@ -113,21 +113,27 @@ public void testNulls() {
113113Connection con =JDBC2Tests .openDB ();
114114
115115DatabaseMetaData dbmd =con .getMetaData ();
116- assert (dbmd != null );
116+ assertNotNull (dbmd );
117117
118- // these need double checking
119- assert (!dbmd .nullsAreSortedAtStart ());
120- assert (dbmd .nullsAreSortedAtEnd ());
121- assert (!dbmd .nullsAreSortedHigh ());
122- assert (!dbmd .nullsAreSortedLow ());
118+ // We need to type cast the connection to get access to the
119+ // PostgreSQL-specific method haveMinimumServerVersion().
120+ // This is not available through the java.sql.Connection interface.
121+ assertTrue (con instanceof org .postgresql .Connection );
123122
124- assert (dbmd .nullPlusNonNullIsNull ());
123+ assertTrue (!dbmd .nullsAreSortedAtStart ());
124+ assertTrue (dbmd .nullsAreSortedAtEnd () !=
125+ ((org .postgresql .Connection )con ).haveMinimumServerVersion ("7.2" ));
126+ assertTrue (dbmd .nullsAreSortedHigh () ==
127+ ((org .postgresql .Connection )con ).haveMinimumServerVersion ("7.2" ));
128+ assertTrue (!dbmd .nullsAreSortedLow ());
125129
126- assert (dbmd .supportsNonNullableColumns ());
130+ assertTrue (dbmd .nullPlusNonNullIsNull ());
131+
132+ assertTrue (dbmd .supportsNonNullableColumns ());
127133
128134JDBC2Tests .closeDB (con );
129135 }catch (SQLException ex ) {
130- assert (ex .getMessage (), false );
136+ fail (ex .getMessage ());
131137 }
132138 }
133139
@@ -136,14 +142,14 @@ public void testLocalFiles() {
136142Connection con =JDBC2Tests .openDB ();
137143
138144DatabaseMetaData dbmd =con .getMetaData ();
139- assert (dbmd != null );
145+ assertNotNull (dbmd );
140146
141- assert (!dbmd .usesLocalFilePerTable ());
142- assert (!dbmd .usesLocalFiles ());
147+ assertTrue (!dbmd .usesLocalFilePerTable ());
148+ assertTrue (!dbmd .usesLocalFiles ());
143149
144150JDBC2Tests .closeDB (con );
145151 }catch (SQLException ex ) {
146- assert (ex .getMessage (), false );
152+ fail (ex .getMessage ());
147153 }
148154 }
149155
@@ -152,23 +158,23 @@ public void testIdentifiers() {
152158Connection con =JDBC2Tests .openDB ();
153159
154160DatabaseMetaData dbmd =con .getMetaData ();
155- assert (dbmd != null );
161+ assertNotNull (dbmd );
156162
157- assert (!dbmd .supportsMixedCaseIdentifiers ());// always false
158- assert (dbmd .supportsMixedCaseQuotedIdentifiers ());// always true
163+ assertTrue (!dbmd .supportsMixedCaseIdentifiers ());// always false
164+ assertTrue (dbmd .supportsMixedCaseQuotedIdentifiers ());// always true
159165
160- assert (!dbmd .storesUpperCaseIdentifiers ());// always false
161- assert (dbmd .storesLowerCaseIdentifiers ());// always true
162- assert (!dbmd .storesUpperCaseQuotedIdentifiers ());// always false
163- assert (!dbmd .storesLowerCaseQuotedIdentifiers ());// always false
164- assert (!dbmd .storesMixedCaseQuotedIdentifiers ());// always false
166+ assertTrue (!dbmd .storesUpperCaseIdentifiers ());// always false
167+ assertTrue (dbmd .storesLowerCaseIdentifiers ());// always true
168+ assertTrue (!dbmd .storesUpperCaseQuotedIdentifiers ());// always false
169+ assertTrue (!dbmd .storesLowerCaseQuotedIdentifiers ());// always false
170+ assertTrue (!dbmd .storesMixedCaseQuotedIdentifiers ());// always false
165171
166- assert (dbmd .getIdentifierQuoteString ().equals ("\" " ));
172+ assertTrue (dbmd .getIdentifierQuoteString ().equals ("\" " ));
167173
168174
169175JDBC2Tests .closeDB (con );
170176 }catch (SQLException ex ) {
171- assert (ex .getMessage (), false );
177+ fail (ex .getMessage ());
172178 }
173179 }
174180
@@ -177,17 +183,17 @@ public void testTables() {
177183Connection con =JDBC2Tests .openDB ();
178184
179185DatabaseMetaData dbmd =con .getMetaData ();
180- assert (dbmd != null );
186+ assertNotNull (dbmd );
181187
182188// we can add columns
183- assert (dbmd .supportsAlterTableWithAddColumn ());
189+ assertTrue (dbmd .supportsAlterTableWithAddColumn ());
184190
185191// we can't drop columns (yet)
186- assert (!dbmd .supportsAlterTableWithDropColumn ());
192+ assertTrue (!dbmd .supportsAlterTableWithDropColumn ());
187193
188194JDBC2Tests .closeDB (con );
189195 }catch (SQLException ex ) {
190- assert (ex .getMessage (), false );
196+ fail (ex .getMessage ());
191197 }
192198 }
193199
@@ -196,23 +202,25 @@ public void testSelect() {
196202Connection con =JDBC2Tests .openDB ();
197203
198204DatabaseMetaData dbmd =con .getMetaData ();
199- assert (dbmd != null );
205+ assertNotNull (dbmd );
200206
201207// yes we can?: SELECT col a FROM a;
202- assert (dbmd .supportsColumnAliasing ());
208+ assertTrue (dbmd .supportsColumnAliasing ());
203209
204210// yes we can have expressions in ORDERBY
205- assert (dbmd .supportsExpressionsInOrderBy ());
211+ assertTrue (dbmd .supportsExpressionsInOrderBy ());
206212
207- assert (!dbmd .supportsOrderByUnrelated ());
213+ // Yes, an ORDER BY clause can contain columns that are not in the
214+ // SELECT clause.
215+ assertTrue (dbmd .supportsOrderByUnrelated ());
208216
209- assert (dbmd .supportsGroupBy ());
210- assert (dbmd .supportsGroupByUnrelated ());
211- assert (dbmd .supportsGroupByBeyondSelect ());// needs checking
217+ assertTrue (dbmd .supportsGroupBy ());
218+ assertTrue (dbmd .supportsGroupByUnrelated ());
219+ assertTrue (dbmd .supportsGroupByBeyondSelect ());// needs checking
212220
213221JDBC2Tests .closeDB (con );
214222 }catch (SQLException ex ) {
215- assert (ex .getMessage (), false );
223+ fail (ex .getMessage ());
216224 }
217225 }
218226
@@ -221,53 +229,53 @@ public void testDBParams() {
221229Connection con =JDBC2Tests .openDB ();
222230
223231DatabaseMetaData dbmd =con .getMetaData ();
224- assert (dbmd != null );
232+ assertNotNull (dbmd );
225233
226- assert (dbmd .getURL ().equals (JDBC2Tests .getURL ()));
227- assert (dbmd .getUserName ().equals (JDBC2Tests .getUser ()));
234+ assertTrue (dbmd .getURL ().equals (JDBC2Tests .getURL ()));
235+ assertTrue (dbmd .getUserName ().equals (JDBC2Tests .getUser ()));
228236
229237JDBC2Tests .closeDB (con );
230238 }catch (SQLException ex ) {
231- assert (ex .getMessage (), false );
239+ fail (ex .getMessage ());
232240 }
233241 }
234242
235243public void testDbProductDetails () {
236244try {
237245Connection con =JDBC2Tests .openDB ();
238- assert (con instanceof org .postgresql .Connection );
246+ assertTrue (con instanceof org .postgresql .Connection );
239247org .postgresql .Connection pc = (org .postgresql .Connection )con ;
240248
241249DatabaseMetaData dbmd =con .getMetaData ();
242- assert (dbmd != null );
250+ assertNotNull (dbmd );
243251
244- assert (dbmd .getDatabaseProductName ().equals ("PostgreSQL" ));
245- assert (dbmd .getDatabaseProductVersion ().startsWith (Integer .toString (pc .this_driver .getMajorVersion ())+"." +Integer .toString (pc .this_driver .getMinorVersion ())));
246- assert (dbmd .getDriverName ().equals ("PostgreSQL Native Driver" ));
252+ assertTrue (dbmd .getDatabaseProductName ().equals ("PostgreSQL" ));
253+ assertTrue (dbmd .getDatabaseProductVersion ().startsWith (Integer .toString (pc .this_driver .getMajorVersion ())+"." +Integer .toString (pc .this_driver .getMinorVersion ())));
254+ assertTrue (dbmd .getDriverName ().equals ("PostgreSQL Native Driver" ));
247255
248256JDBC2Tests .closeDB (con );
249257 }catch (SQLException ex ) {
250- assert (ex .getMessage (), false );
258+ fail (ex .getMessage ());
251259 }
252260 }
253261
254262public void testDriverVersioning () {
255263try {
256264Connection con =JDBC2Tests .openDB ();
257- assert (con instanceof org .postgresql .Connection );
265+ assertTrue (con instanceof org .postgresql .Connection );
258266org .postgresql .Connection pc = (org .postgresql .Connection )con ;
259267
260268DatabaseMetaData dbmd =con .getMetaData ();
261- assert (dbmd != null );
269+ assertNotNull (dbmd );
262270
263- assert (dbmd .getDriverVersion ().equals (pc .this_driver .getVersion ()));
264- assert (dbmd .getDriverMajorVersion ()==pc .this_driver .getMajorVersion ());
265- assert (dbmd .getDriverMinorVersion ()==pc .this_driver .getMinorVersion ());
271+ assertTrue (dbmd .getDriverVersion ().equals (pc .this_driver .getVersion ()));
272+ assertTrue (dbmd .getDriverMajorVersion ()==pc .this_driver .getMajorVersion ());
273+ assertTrue (dbmd .getDriverMinorVersion ()==pc .this_driver .getMinorVersion ());
266274
267275
268276JDBC2Tests .closeDB (con );
269277 }catch (SQLException ex ) {
270- assert (ex .getMessage (), false );
278+ fail (ex .getMessage ());
271279 }
272280 }
273- }
281+ }