Kaydet (Commit) 3bb1f0b3 authored tarafından Tamas Bunth's avatar Tamas Bunth Kaydeden (comit) Tamás Bunth

Revert HSQLDB related unit tests

Revert changes making HSQLDB related unit tests test Firebird migration.
They should still test the HSQLDB driver.

It reverts part of 159dd286

Change-Id: If2b9207e95055418bd1dc1dc6e472335de311d1e
Reviewed-on: https://gerrit.libreoffice.org/52873Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarTamás Bunth <btomi96@gmail.com>
üst c760ebc5
......@@ -32,7 +32,6 @@ $(eval $(call gb_Jar_add_sourcefiles,ConnectivityTools,\
connectivity/qa/connectivity/tools/DatabaseAccess \
connectivity/qa/connectivity/tools/DataSource \
connectivity/qa/connectivity/tools/DbaseDatabase \
connectivity/qa/connectivity/tools/FirebirdDatabase \
connectivity/qa/connectivity/tools/FlatFileDatabase \
connectivity/qa/connectivity/tools/HsqlColumnDescriptor \
connectivity/qa/connectivity/tools/HsqlDatabase \
......
......@@ -43,7 +43,7 @@ public class CRMDatabase
private static final String INTEGER = "INTEGER";
private static final String VARCHAR50 = "VARCHAR(50)";
private final XMultiServiceFactory m_orb;
private final FirebirdDatabase m_database;
private final HsqlDatabase m_database;
private final Connection m_connection;
/** constructs the CRM database
......@@ -52,7 +52,7 @@ public class CRMDatabase
{
m_orb = _orb;
m_database = new FirebirdDatabase( m_orb );
m_database = new HsqlDatabase( m_orb );
if ( _withUI )
{
......@@ -81,14 +81,14 @@ public class CRMDatabase
{
m_orb = _orb;
m_database = new FirebirdDatabase( m_orb, _existingDocumentURL );
m_database = new HsqlDatabase( m_orb, _existingDocumentURL );
m_connection = m_database.defaultConnection();
}
/** returns the database document underlying the CRM database
*/
public final FirebirdDatabase getDatabase()
public final HsqlDatabase getDatabase()
{
return m_database;
}
......@@ -141,7 +141,7 @@ public class CRMDatabase
new HsqlColumnDescriptor( "ID",INTEGER, HsqlColumnDescriptor.PRIMARY ),
new HsqlColumnDescriptor( "Name",VARCHAR50),
new HsqlColumnDescriptor( "Description", "VARCHAR(1024)" ),
new HsqlColumnDescriptor( "Image", "BLOB SUB_TYPE -9546" ) } );
new HsqlColumnDescriptor( "Image", "LONGVARBINARY" ) } );
m_database.createTable( table, true );
m_database.executeSQL( "INSERT INTO \"categories\" ( \"ID\", \"Name\" ) VALUES ( 1, 'Food' )" );
......@@ -166,7 +166,7 @@ public class CRMDatabase
new HsqlColumnDescriptor( "Address",VARCHAR50),
new HsqlColumnDescriptor( "City",VARCHAR50),
new HsqlColumnDescriptor( "Postal",VARCHAR50),
new HsqlColumnDescriptor( "Comment","BLOB SUB_TYPE 1")} );
new HsqlColumnDescriptor( "Comment","LONGVARCHAR")} );
m_database.createTable( table, true );
m_database.executeSQL( "INSERT INTO \"customers\" VALUES(1,'Food, Inc.','Down Under','Melbourne','509','Preferred') " );
......@@ -182,8 +182,8 @@ public class CRMDatabase
new HsqlColumnDescriptor( "ShipDate", "DATE" ) } );
m_database.createTable( table, true );
m_database.executeSQL( "INSERT INTO \"orders\" (\"ID\", \"CustomerID\", \"OrderDate\") VALUES(1, 1, DATE '2009-01-01')" );
m_database.executeSQL( "INSERT INTO \"orders\" VALUES(2, 2, DATE '2009-01-01', DATE '2009-01-23')" );
m_database.executeSQL( "INSERT INTO \"orders\" (\"ID\", \"CustomerID\", \"OrderDate\") VALUES(1, 1, {D '2009-01-01'})" );
m_database.executeSQL( "INSERT INTO \"orders\" VALUES(2, 2, {D '2009-01-01'}, {D '2009-01-23'})" );
table = new HsqlTableDescriptor( "orders_details",
new HsqlColumnDescriptor[] {
......
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
package connectivity.tools;
import com.sun.star.beans.PropertyValue;
import com.sun.star.beans.PropertyState;
import com.sun.star.beans.XPropertySet;
import com.sun.star.container.ElementExistException;
import com.sun.star.frame.XStorable;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.sdb.XOfficeDatabaseDocument;
import com.sun.star.sdbc.SQLException;
import com.sun.star.sdbcx.XAppend;
import com.sun.star.sdbcx.XTablesSupplier;
import com.sun.star.uno.UnoRuntime;
import helper.URLHelper;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import org.junit.Assert;
public class FirebirdDatabase extends AbstractDatabase
{
public FirebirdDatabase(final XMultiServiceFactory orb) throws Exception
{
super(orb);
createDBDocument();
}
public FirebirdDatabase(final XMultiServiceFactory orb, final String _existingDocumentURL) throws Exception
{
super(orb, _existingDocumentURL);
}
/** creates an empty database document in a temporary location
*/
private void createDBDocument() throws Exception
{
Assert.assertNull(m_documentFile);
m_documentFile = File.createTempFile("testdb", ".odb");
if ( m_documentFile.exists() )
m_documentFile.delete();
m_databaseDocumentFile = URLHelper.getFileURLFromSystemPath(m_documentFile);
m_databaseDocument = UnoRuntime.queryInterface(
XOfficeDatabaseDocument.class, m_orb.createInstance("com.sun.star.sdb.OfficeDatabaseDocument"));
m_dataSource = new DataSource(m_databaseDocument.getDataSource());
final XPropertySet dsProperties = UnoRuntime.queryInterface(XPropertySet.class, m_databaseDocument.getDataSource());
dsProperties.setPropertyValue("URL", "sdbc:embedded:hsqldb");
final XStorable storable = UnoRuntime.queryInterface(XStorable.class, m_databaseDocument);
storable.storeAsURL( m_databaseDocumentFile, new PropertyValue[]
{ new PropertyValue( "PickListEntry", 0, false, PropertyState.DIRECT_VALUE )
} );
}
@Override protected final void delete() {
if (m_documentFile != null) {
boolean ok = m_documentFile.delete();
//TODO: fails on Windows: Assert.assertTrue("delete " + m_documentFile.getPath(), ok);
}
}
/** drops the table with a given name
@param _name
the name of the table to drop
*/
private void dropTable(final String _name) throws SQLException
{
final StringBuffer dropStatement = new StringBuffer("EXECUTE BLOCK AS BEGIN"
+ " if (exists(select 1 from rdb$relations where rdb$relation_name ='");
dropStatement.append(_name);
dropStatement.append("')) then execute statement 'DROP TABLE ");
dropStatement.append(_name);
dropStatement.append("'; END");
executeSQL(dropStatement.toString());
}
public void createTable(final HsqlTableDescriptor _tableDesc, final boolean _dropIfExists) throws SQLException
{
if (_dropIfExists)
{
dropTable(_tableDesc.getName());
}
createTable(_tableDesc);
}
/** creates a table
*/
public void createTable(final HsqlTableDescriptor _tableDesc) throws SQLException
{
StringBuffer createStatement = new StringBuffer("CREATE TABLE \"");
createStatement.append(_tableDesc.getName());
createStatement.append("\" ( ");
String primaryKeyList = "";
final HashMap<String, String> foreignKeys = new HashMap<String, String>();
final HashMap<String, String> foreignKeyRefs = new HashMap<String, String>();
final HsqlColumnDescriptor[] columns = _tableDesc.getColumns();
for (int i = 0; i < columns.length; ++i)
{
if (i > 0)
{
createStatement.append(", ");
}
createStatement.append("\"").append(columns[i].getName());
createStatement.append("\" ").append(columns[i].getTypeName());
if (columns[i].isRequired())
{
createStatement.append(" NOT NULL");
}
if (columns[i].isPrimaryKey())
{
if (primaryKeyList.length() > 0)
{
primaryKeyList += ", ";
}
primaryKeyList += "\"" + columns[i].getName() + "\"";
}
if (columns[i].isForeignKey())
{
final String foreignTable = columns[i].getForeignTable();
String foreignKeysForTable = foreignKeys.containsKey(foreignTable) ? foreignKeys.get(foreignTable) : "";
if (foreignKeysForTable.length() > 0)
{
foreignKeysForTable += ", ";
}
foreignKeysForTable += "\"" + columns[i].getName() + "\"";
foreignKeys.put(foreignTable, foreignKeysForTable);
final StringBuffer foreignKeyRefsForTable = new StringBuffer(foreignKeyRefs.containsKey(foreignTable) ? foreignKeyRefs.get(foreignTable) : "");
if (foreignKeyRefsForTable.length() > 0)
{
foreignKeyRefsForTable.append(", ");
}
foreignKeyRefsForTable.append("\"").append(columns[i].getForeignColumn()).append("\"");
foreignKeyRefs.put(foreignTable, foreignKeyRefsForTable.toString());
}
}
if (primaryKeyList.length() > 0)
{
createStatement.append(", PRIMARY KEY (");
createStatement.append(primaryKeyList);
createStatement.append(')');
}
for (Map.Entry<String, String> foreignKey : foreignKeys.entrySet())
{
final String foreignTable = foreignKey.getKey();
createStatement.append(", FOREIGN KEY (");
createStatement.append(foreignKey.getValue());
createStatement.append(") REFERENCES \"");
createStatement.append(foreignTable);
createStatement.append("\"(");
createStatement.append(foreignKeyRefs.get(foreignTable));
createStatement.append(')');
}
createStatement.append(')');
executeSQL(createStatement.toString());
}
/** creates a table in the database. using the SDBCX-API
*/
public void createTableInSDBCX(final HsqlTableDescriptor _tableDesc) throws SQLException, ElementExistException
{
final XPropertySet sdbcxDescriptor = _tableDesc.createSdbcxDescriptor(defaultConnection());
final XTablesSupplier suppTables = UnoRuntime.queryInterface( XTablesSupplier.class, defaultConnection().getXConnection() );
final XAppend appendTable = UnoRuntime.queryInterface( XAppend.class, suppTables.getTables() );
appendTable.appendByDescriptor(sdbcxDescriptor);
}
private File m_documentFile;
}
......@@ -67,7 +67,8 @@ $(eval $(call gb_CppunitTest_use_components,dbaccess_RowSetClones,\
basic/util/sb \
comphelper/util/comphelp \
configmgr/source/configmgr \
connectivity/source/drivers/firebird/firebird_sdbc \
connectivity/source/drivers/hsqldb/hsqldb \
connectivity/source/drivers/jdbc/jdbc \
connectivity/source/manager/sdbc2 \
dbaccess/util/dba \
dbaccess/util/dbu \
......
......@@ -22,7 +22,7 @@ $(eval $(call gb_CppunitTest_use_libraries,dbaccess_hsqldb_test, \
cppuhelper \
dbaxml \
dbtools \
firebird_sdbc \
jvmfwk \
sal \
subsequenttest \
utl \
......@@ -46,7 +46,8 @@ $(eval $(call gb_CppunitTest_use_components,dbaccess_hsqldb_test,\
comphelper/util/comphelp \
configmgr/source/configmgr \
connectivity/source/cpool/dbpool2 \
connectivity/source/drivers/firebird/firebird_sdbc \
connectivity/source/drivers/hsqldb/hsqldb \
connectivity/source/drivers/jdbc/jdbc \
connectivity/source/manager/sdbc2 \
dbaccess/util/dba \
dbaccess/source/filter/xml/dbaxml \
......
......@@ -48,7 +48,7 @@ $(eval $(call gb_Module_add_check_targets,dbaccess,\
CppunitTest_dbaccess_hsqlschema_import \
))
ifeq ($(ENABLE_FIREBIRD_SDBC),TRUE)
ifeq ($(ENABLE_JAVA),TRUE)
$(eval $(call gb_Module_add_check_targets,dbaccess,\
CppunitTest_dbaccess_hsqldb_test \
CppunitTest_dbaccess_RowSetClones \
......@@ -58,23 +58,20 @@ endif
# This runs a suite of performance tests on embedded firebird and HSQLDB.
# Instructions on running the test can be found in qa/unit/embeddedb_performancetest
ifeq ($(ENABLE_FIREBIRD_SDBC),TRUE)
ifeq ($(ENABLE_JAVA),TRUE)
$(eval $(call gb_Module_add_check_targets,dbaccess,\
CppunitTest_dbaccess_embeddeddb_performancetest \
))
endif
ifeq ($(ENABLE_FIREBIRD_SDBC),TRUE)
$(eval $(call gb_Module_add_subsequentcheck_targets,dbaccess,\
JunitTest_dbaccess_complex \
))
endif
$(eval $(call gb_Module_add_subsequentcheck_targets,dbaccess,\
JunitTest_dbaccess_complex \
JunitTest_dbaccess_unoapi \
))
ifneq ($(DISABLE_PYTHON),TRUE)
ifneq ($(ENABLE_FIREBIRD_SDBC),)
ifneq ($(ENABLE_JAVA),)
$(eval $(call gb_Module_add_subsequentcheck_targets,dbaccess,\
PythonTest_dbaccess_python \
))
......
......@@ -30,7 +30,7 @@ import com.sun.star.sdbcx.XTablesSupplier;
import com.sun.star.uno.Exception;
import com.sun.star.uno.UnoRuntime;
import connectivity.tools.HsqlColumnDescriptor;
import connectivity.tools.FirebirdDatabase;
import connectivity.tools.HsqlDatabase;
import connectivity.tools.HsqlTableDescriptor;
import java.io.IOException;
......@@ -47,7 +47,7 @@ import static org.junit.Assert.*;
public class ApplicationController extends TestCase
{
private FirebirdDatabase m_database;
private HsqlDatabase m_database;
private XOfficeDatabaseDocument m_databaseDocument;
private XDatabaseDocumentUI m_documentUI;
......@@ -76,8 +76,8 @@ public class ApplicationController extends TestCase
// create/load the new database document
m_database = (_documentURL == null)
? new FirebirdDatabase(getMSF())
: new FirebirdDatabase(getMSF(), _documentURL);
? new HsqlDatabase(getMSF())
: new HsqlDatabase(getMSF(), _documentURL);
m_databaseDocument = m_database.getDatabaseDocument();
// load it into a frame
......
......@@ -21,7 +21,7 @@ import com.sun.star.container.XNameAccess;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XNamingService;
import connectivity.tools.CRMDatabase;
import connectivity.tools.FirebirdDatabase;
import connectivity.tools.HsqlDatabase;
// ---------- junit imports -----------------
import org.junit.Test;
......@@ -32,7 +32,7 @@ import static org.junit.Assert.*;
public class DataSource extends TestCase
{
FirebirdDatabase m_database;
HsqlDatabase m_database;
connectivity.tools.DataSource m_dataSource;
......
......@@ -34,7 +34,7 @@ import static org.junit.Assert.*;
public class Query extends TestCase
{
connectivity.tools.FirebirdDatabase m_database;
connectivity.tools.HsqlDatabase m_database;
private void createTestCase()
......
......@@ -41,7 +41,7 @@ import com.sun.star.uno.UnoRuntime;
import connectivity.tools.CRMDatabase;
import connectivity.tools.DataSource;
import connectivity.tools.FirebirdDatabase;
import connectivity.tools.HsqlDatabase;
import connectivity.tools.sdb.Connection;
import java.lang.reflect.Method;
import java.util.Random;
......@@ -59,7 +59,7 @@ public class RowSet extends TestCase
static final int MAX_FETCH_ROWS = 10;
private static final String NEXT = "next";
private static final String TEST21 = "Test21";
FirebirdDatabase m_database;
HsqlDatabase m_database;
DataSource m_dataSource;
XRowSet m_rowSet;
XResultSet m_resultSet;
......@@ -220,10 +220,8 @@ public class RowSet extends TestCase
void createStructure() throws SQLException
{
m_database.executeSQL("EXECUTE BLOCK AS BEGIN"
+ " if (not exists(select 1 from rdb$relations where rdb$relation_name = '\"TEST1\"')) then"
+ " execute statement 'CREATE TABLE \"TEST1\" (\"ID\" integer not null primary key, \"col2\" varchar(50) )';"
+ " END");
m_database.executeSQL("DROP TABLE \"TEST1\" IF EXISTS");
m_database.executeSQL("CREATE TABLE \"TEST1\" (\"ID\" integer not null primary key, \"col2\" varchar(50) )");
final Connection connection = m_database.defaultConnection();
final XPreparedStatement prep = connection.prepareStatement("INSERT INTO \"TEST1\" values (?,?)");
......@@ -933,12 +931,12 @@ public class RowSet extends TestCase
// use an own RowSet instance, not the one which is also used for the other cases
testTableParameters();
//testParametrizedQuery();
//testParametersInFilter();
testParametrizedQuery();
testParametersInFilter();
//testParametersAfterNormalExecute();
testParametersAfterNormalExecute();
//testParametersInteraction();
testParametersInteraction();
}
}
......@@ -27,6 +27,8 @@ class HsqlBinaryImportTest : public DBTestBase
public:
void testBinaryImport();
virtual void setUp() override;
CPPUNIT_TEST_SUITE(HsqlBinaryImportTest);
CPPUNIT_TEST(testBinaryImport);
......@@ -34,6 +36,13 @@ public:
CPPUNIT_TEST_SUITE_END();
};
void HsqlBinaryImportTest::setUp()
{
DBTestBase::setUp();
SvtMiscOptions aMiscOptions;
osl_setEnvironment(OUString{ "DBACCESS_HSQL_MIGRATION" }.pData, OUString{ "1" }.pData);
}
void HsqlBinaryImportTest::testBinaryImport()
{
uno::Reference<XOfficeDatabaseDocument> xDocument
......
......@@ -582,7 +582,11 @@ Reference< XConnection > ODatabaseSource::buildLowLevelConnection(const OUString
Reference< XDriverManager > xManager;
bool bNeedMigration = false;
if( m_pImpl->m_sConnectURL == "sdbc:embedded:hsqldb")
OUString sMigrEnvVal;
osl_getEnvironment(OUString("DBACCESS_HSQL_MIGRATION").pData,
&sMigrEnvVal.pData);
if( m_pImpl->m_sConnectURL == "sdbc:embedded:hsqldb" &&
!sMigrEnvVal.isEmpty())
{
m_pImpl->m_sConnectURL = "sdbc:embedded:firebird";
bNeedMigration = true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment