99 *
1010 * PS: Do you know how difficult it is to type on a train? ;-)
1111 *
12- * $Id: DatabaseMetaDataTest.java,v 1.4 2001/11/19 22:33:39 momjian Exp $
12+ * $Id: DatabaseMetaDataTest.java,v 1.5 2002/04/16 15:25:17 davec Exp $
1313 */
1414
1515public class DatabaseMetaDataTest extends TestCase
1616{
1717
18+ private Connection con ;
1819/*
1920 * Constructor
2021 */
@@ -23,19 +24,50 @@ public DatabaseMetaDataTest(String name)
2324super (name );
2425}
2526
27+ protected void setUp ()throws Exception
28+ {
29+ con =JDBC2Tests .openDB ();
30+ JDBC2Tests .createTable (con ,"testmetadata" ,"id int4, name text, updated timestamp" );
31+ }
32+ protected void tearDown ()throws Exception
33+ {
34+ JDBC2Tests .dropTable (con ,"testmetadata" );
35+
36+ JDBC2Tests .closeDB (con );
37+ }
2638/*
2739 * The spec says this may return null, but we always do!
2840 */
2941public void testGetMetaData ()
3042{
3143try
3244{
33- Connection con =JDBC2Tests .openDB ();
3445
3546DatabaseMetaData dbmd =con .getMetaData ();
3647assertNotNull (dbmd );
3748
38- JDBC2Tests .closeDB (con );
49+ ResultSet rs =dbmd .getTables (null ,null ,"test%" ,new String [] {"TABLE" });
50+ assertTrue (rs .next () );
51+ assertTrue (rs .getString ("TABLE_NAME" ).equals ("testmetadata" ) );
52+
53+ rs .close ();
54+
55+ rs =dbmd .getColumns ("" ,"" ,"test%" ,"%" );
56+ assertTrue (rs .next () );
57+ assertTrue (rs .getString ("TABLE_NAME" ).equals ("testmetadata" ) );
58+ assertTrue (rs .getString ("COLUMN_NAME" ).equals ("id" ) );
59+ assertTrue (rs .getInt ("DATA_TYPE" ) ==java .sql .Types .INTEGER );
60+
61+ assertTrue (rs .next () );
62+ assertTrue (rs .getString ("TABLE_NAME" ).equals ("testmetadata" ) );
63+ assertTrue (rs .getString ("COLUMN_NAME" ).equals ("name" ) );
64+ assertTrue (rs .getInt ("DATA_TYPE" ) ==java .sql .Types .VARCHAR );
65+
66+ assertTrue (rs .next () );
67+ assertTrue (rs .getString ("TABLE_NAME" ).equals ("testmetadata" ) );
68+ assertTrue (rs .getString ("COLUMN_NAME" ).equals ("updated" ) );
69+ assertTrue (rs .getInt ("DATA_TYPE" ) ==java .sql .Types .TIMESTAMP );
70+
3971}
4072catch (SQLException ex )
4173{
@@ -50,7 +82,6 @@ public void testCapabilities()
5082{
5183try
5284{
53- Connection con =JDBC2Tests .openDB ();
5485
5586DatabaseMetaData dbmd =con .getMetaData ();
5687assertNotNull (dbmd );
@@ -76,7 +107,6 @@ public void testCapabilities()
76107
77108assertTrue (!dbmd .supportsIntegrityEnhancementFacility ());
78109
79- JDBC2Tests .closeDB (con );
80110}
81111catch (SQLException ex )
82112{
@@ -89,7 +119,6 @@ public void testJoins()
89119{
90120try
91121{
92- Connection con =JDBC2Tests .openDB ();
93122
94123DatabaseMetaData dbmd =con .getMetaData ();
95124assertNotNull (dbmd );
@@ -98,7 +127,6 @@ public void testJoins()
98127assertTrue (dbmd .supportsFullOuterJoins ());
99128assertTrue (dbmd .supportsLimitedOuterJoins ());
100129
101- JDBC2Tests .closeDB (con );
102130}
103131catch (SQLException ex )
104132{
@@ -110,15 +138,13 @@ public void testCursors()
110138{
111139try
112140{
113- Connection con =JDBC2Tests .openDB ();
114141
115142DatabaseMetaData dbmd =con .getMetaData ();
116143assertNotNull (dbmd );
117144
118145assertTrue (!dbmd .supportsPositionedDelete ());
119146assertTrue (!dbmd .supportsPositionedUpdate ());
120147
121- JDBC2Tests .closeDB (con );
122148}
123149catch (SQLException ex )
124150{
@@ -130,7 +156,6 @@ public void testNulls()
130156{
131157try
132158{
133- Connection con =JDBC2Tests .openDB ();
134159
135160DatabaseMetaData dbmd =con .getMetaData ();
136161assertNotNull (dbmd );
@@ -151,7 +176,6 @@ public void testNulls()
151176
152177assertTrue (dbmd .supportsNonNullableColumns ());
153178
154- JDBC2Tests .closeDB (con );
155179}
156180catch (SQLException ex )
157181{
@@ -163,15 +187,13 @@ public void testLocalFiles()
163187{
164188try
165189{
166- Connection con =JDBC2Tests .openDB ();
167190
168191DatabaseMetaData dbmd =con .getMetaData ();
169192assertNotNull (dbmd );
170193
171194assertTrue (!dbmd .usesLocalFilePerTable ());
172195assertTrue (!dbmd .usesLocalFiles ());
173196
174- JDBC2Tests .closeDB (con );
175197}
176198catch (SQLException ex )
177199{
@@ -183,7 +205,6 @@ public void testIdentifiers()
183205{
184206try
185207{
186- Connection con =JDBC2Tests .openDB ();
187208
188209DatabaseMetaData dbmd =con .getMetaData ();
189210assertNotNull (dbmd );
@@ -200,7 +221,6 @@ public void testIdentifiers()
200221assertTrue (dbmd .getIdentifierQuoteString ().equals ("\" " ));
201222
202223
203- JDBC2Tests .closeDB (con );
204224}
205225catch (SQLException ex )
206226{
@@ -212,7 +232,6 @@ public void testTables()
212232{
213233try
214234{
215- Connection con =JDBC2Tests .openDB ();
216235
217236DatabaseMetaData dbmd =con .getMetaData ();
218237assertNotNull (dbmd );
@@ -223,7 +242,6 @@ public void testTables()
223242// we can't drop columns (yet)
224243assertTrue (!dbmd .supportsAlterTableWithDropColumn ());
225244
226- JDBC2Tests .closeDB (con );
227245}
228246catch (SQLException ex )
229247{
@@ -235,7 +253,6 @@ public void testSelect()
235253{
236254try
237255{
238- Connection con =JDBC2Tests .openDB ();
239256
240257DatabaseMetaData dbmd =con .getMetaData ();
241258assertNotNull (dbmd );
@@ -254,7 +271,6 @@ public void testSelect()
254271assertTrue (dbmd .supportsGroupByUnrelated ());
255272assertTrue (dbmd .supportsGroupByBeyondSelect ());// needs checking
256273
257- JDBC2Tests .closeDB (con );
258274}
259275catch (SQLException ex )
260276{
@@ -266,15 +282,13 @@ public void testDBParams()
266282{
267283try
268284{
269- Connection con =JDBC2Tests .openDB ();
270285
271286DatabaseMetaData dbmd =con .getMetaData ();
272287assertNotNull (dbmd );
273288
274289assertTrue (dbmd .getURL ().equals (JDBC2Tests .getURL ()));
275290assertTrue (dbmd .getUserName ().equals (JDBC2Tests .getUser ()));
276291
277- JDBC2Tests .closeDB (con );
278292}
279293catch (SQLException ex )
280294{
@@ -286,7 +300,6 @@ public void testDbProductDetails()
286300{
287301try
288302{
289- Connection con =JDBC2Tests .openDB ();
290303assertTrue (con instanceof org .postgresql .Connection );
291304org .postgresql .Connection pc = (org .postgresql .Connection )con ;
292305
@@ -297,7 +310,6 @@ public void testDbProductDetails()
297310assertTrue (dbmd .getDatabaseProductVersion ().startsWith (Integer .toString (pc .this_driver .getMajorVersion ()) +"." +Integer .toString (pc .this_driver .getMinorVersion ())));
298311assertTrue (dbmd .getDriverName ().equals ("PostgreSQL Native Driver" ));
299312
300- JDBC2Tests .closeDB (con );
301313}
302314catch (SQLException ex )
303315{
@@ -309,7 +321,6 @@ public void testDriverVersioning()
309321{
310322try
311323{
312- Connection con =JDBC2Tests .openDB ();
313324assertTrue (con instanceof org .postgresql .Connection );
314325org .postgresql .Connection pc = (org .postgresql .Connection )con ;
315326
@@ -321,7 +332,6 @@ public void testDriverVersioning()
321332assertTrue (dbmd .getDriverMinorVersion () ==pc .this_driver .getMinorVersion ());
322333
323334
324- JDBC2Tests .closeDB (con );
325335}
326336catch (SQLException ex )
327337{