/*
* Copyright (c) 2004, PostgreSQL Global Development Group
* See the LICENSE file in the project root for more information.
*/
package org.postgresql.test.jdbc2;
import org.postgresql.core.ParserTest;
import org.postgresql.core.ServerVersion;
import org.postgresql.core.v3.V3ParameterListTests;
import org.postgresql.jdbc.DeepBatchedInsertStatementTest;
import org.postgresql.test.CursorFetchBinaryTest;
import org.postgresql.test.TestUtil;
import org.postgresql.test.core.NativeQueryBindLengthTest;
import org.postgresql.test.util.ExpressionPropertiesTest;
import org.postgresql.test.util.LruCacheTest;
import org.postgresql.test.util.ServerVersionParseTest;
import org.postgresql.test.util.ServerVersionTest;
import org.postgresql.util.ReaderInputStreamTest;
import junit.framework.JUnit4TestAdapter;
import junit.framework.TestSuite;
import java.sql.Connection;
/*
* Executes all known tests for JDBC2 and includes some utility methods.
*/
public class Jdbc2TestSuite extends TestSuite {
/*
* The main entry point for JUnit
*/
public static TestSuite suite() throws Exception {
TestSuite suite = new TestSuite();
//
// Add one line per class in our test cases. These should be in order of
// complexity.
// ANTTest should be first as it ensures that test parameters are
// being sent to the suite.
//
suite.addTest(new JUnit4TestAdapter(ANTTest.class));
// Basic Driver internals
suite.addTest(new JUnit4TestAdapter(DriverTest.class));
suite.addTest(new JUnit4TestAdapter(ConnectionTest.class));
suite.addTest(new JUnit4TestAdapter(DatabaseMetaDataTest.class));
suite.addTest(new JUnit4TestAdapter(DatabaseMetaDataPropertiesTest.class));
suite.addTest(new JUnit4TestAdapter(SearchPathLookupTest.class));
suite.addTest(new JUnit4TestAdapter(EncodingTest.class));
suite.addTest(new JUnit4TestAdapter(ExpressionPropertiesTest.class));
suite.addTest(new JUnit4TestAdapter(ColumnSanitiserDisabledTest.class));
suite.addTest(new JUnit4TestAdapter(ColumnSanitiserEnabledTest.class));
suite.addTest(new JUnit4TestAdapter(LruCacheTest.class));
suite.addTest(new JUnit4TestAdapter(ReaderInputStreamTest.class));
suite.addTest(new JUnit4TestAdapter(ServerVersionParseTest.class));
suite.addTest(new JUnit4TestAdapter(ServerVersionTest.class));
// Connectivity/Protocols
suite.addTest(new JUnit4TestAdapter(TypeCacheDLLStressTest.class));
// ResultSet
suite.addTest(new JUnit4TestAdapter(ResultSetTest.class));
suite.addTest(new JUnit4TestAdapter(ResultSetMetaDataTest.class));
suite.addTest(new JUnit4TestAdapter(ArrayTest.class));
suite.addTest(new JUnit4TestAdapter(RefCursorTest.class));
// Time, Date, Timestamp, PGTime, PGTimestamp
suite.addTest(new JUnit4TestAdapter(DateTest.class));
suite.addTest(new JUnit4TestAdapter(TimeTest.class));
suite.addTest(new JUnit4TestAdapter(TimestampTest.class));
suite.addTest(new JUnit4TestAdapter(TimezoneTest.class));
suite.addTest(new JUnit4TestAdapter(PGTimeTest.class));
suite.addTest(new JUnit4TestAdapter(PGTimestampTest.class));
suite.addTest(new JUnit4TestAdapter(TimezoneCachingTest.class));
suite.addTest(new JUnit4TestAdapter(ParserTest.class));
// PreparedStatement
suite.addTest(new JUnit4TestAdapter(PreparedStatementTest.class));
suite.addTest(new JUnit4TestAdapter(StatementTest.class));
suite.addTest(new JUnit4TestAdapter(QuotationTest.class));
// ServerSide Prepared Statements
suite.addTest(new JUnit4TestAdapter(ServerPreparedStmtTest.class));
// BatchExecute
suite.addTest(new JUnit4TestAdapter(BatchExecuteTest.class));
suite.addTest(new JUnit4TestAdapter(BatchFailureTest.class));
suite.addTest(new JUnit4TestAdapter(BatchedInsertReWriteEnabledTest.class));
suite.addTest(new JUnit4TestAdapter(NativeQueryBindLengthTest.class));
suite.addTestSuite(DeepBatchedInsertStatementTest.class);
// Other misc tests, based on previous problems users have had or specific
// features some applications require.
suite.addTest(new JUnit4TestAdapter(JBuilderTest.class));
suite.addTest(new JUnit4TestAdapter(MiscTest.class));
suite.addTest(new JUnit4TestAdapter(NotifyTest.class));
suite.addTest(new JUnit4TestAdapter(DatabaseEncodingTest.class));
// Fastpath/LargeObject
suite.addTest(new JUnit4TestAdapter(BlobTest.class));
suite.addTest(new JUnit4TestAdapter(BlobTransactionTest.class));
suite.addTest(new JUnit4TestAdapter(UpdateableResultTest.class));
suite.addTest(new JUnit4TestAdapter(CallableStmtTest.class));
suite.addTestSuite(CursorFetchTest.class);
suite.addTestSuite(CursorFetchBinaryTest.class);
suite.addTest(new JUnit4TestAdapter(ServerCursorTest.class));
suite.addTest(new JUnit4TestAdapter(IntervalTest.class));
suite.addTest(new JUnit4TestAdapter(GeometricTest.class));
suite.addTest(new JUnit4TestAdapter(LoginTimeoutTest.class));
suite.addTest(new JUnit4TestAdapter(TestACL.class));
suite.addTest(new JUnit4TestAdapter(ConnectTimeoutTest.class));
suite.addTest(new JUnit4TestAdapter(PGPropertyTest.class));
suite.addTestSuite(V3ParameterListTests.class);
Connection conn = TestUtil.openDB();
if (TestUtil.isProtocolVersion(conn, 3)) {
suite.addTest(new JUnit4TestAdapter(CopyTest.class));
suite.addTest(new JUnit4TestAdapter(CopyLargeFileTest.class));
}
if (TestUtil.haveMinimumServerVersion(conn, ServerVersion.v9_3)) {
suite.addTest(new JUnit4TestAdapter(ServerErrorTest.class));
}
if (TestUtil.haveMinimumServerVersion(conn, ServerVersion.v9_5)) {
suite.addTestSuite(UpsertTest.class);
suite.addTestSuite(UpsertBinaryTest.class);
}
conn.close();
// That's all folks
return suite;
}
}