[nobug] fix connection string creation in tests to allow usage of properties
Signed-off-by: Lukas Jungmann <lukas.jungmann@oracle.com>
diff --git a/jpa/eclipselink.jpa.test/src/org/eclipse/persistence/testing/tests/jpa/advanced/multitenant/AdvancedMultiTenantSchemaJunitTest.java b/jpa/eclipselink.jpa.test/src/org/eclipse/persistence/testing/tests/jpa/advanced/multitenant/AdvancedMultiTenantSchemaJunitTest.java
index 5f8506d..745aff9 100644
--- a/jpa/eclipselink.jpa.test/src/org/eclipse/persistence/testing/tests/jpa/advanced/multitenant/AdvancedMultiTenantSchemaJunitTest.java
+++ b/jpa/eclipselink.jpa.test/src/org/eclipse/persistence/testing/tests/jpa/advanced/multitenant/AdvancedMultiTenantSchemaJunitTest.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. This
+ * Copyright (c) 2015, 2017 Oracle and/or its affiliates. All rights reserved. This
* program and the accompanying materials are made available under the terms of
* the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 which
* accompanies this distribution. The Eclipse Public License is available at
@@ -122,8 +122,14 @@ public void testSetup() {
}
DatabaseSessionImpl databaseSession = getDatabaseSession();
DatabaseLogin login = getDatabaseSession().getLogin();
- schema1 = login.getConnectionString().substring(login.getConnectionString().lastIndexOf('/') + 1);
+ String connectionString = login.getConnectionString();
+ int schemaIdx = connectionString.lastIndexOf('/');
+ int queryIdx = connectionString.indexOf('?', schemaIdx);
+ schema1 = connectionString.substring(schemaIdx + 1, queryIdx < 0 ? connectionString.length() : queryIdx);
schema2 = schema1 + "_MT";
+ String connectionStringMT = queryIdx < 0
+ ? connectionString + "_MT"
+ : connectionString.substring(0, queryIdx) + "_MT" + connectionString.substring(queryIdx);
assertNotNull(schema1);
assertNotNull(schema2);
databaseSession.executeNonSelectingSQL("use " + schema1 + ";");
@@ -146,8 +152,8 @@ public void testSetup() {
}
Map<String, String> currentProps = JUnitTestCaseHelper.getDatabaseProperties(getPersistenceUnitName());
- TestDataSource ds1 = new TestDataSource(login.getDriverClassName(), login.getConnectionString(), (Properties) login.getProperties().clone());
- TestDataSource ds2 = new TestDataSource(login.getDriverClassName(), login.getConnectionString() + "_MT", (Properties) login.getProperties().clone());
+ TestDataSource ds1 = new TestDataSource(login.getDriverClassName(), connectionString, (Properties) login.getProperties().clone());
+ TestDataSource ds2 = new TestDataSource(login.getDriverClassName(), connectionStringMT, (Properties) login.getProperties().clone());
proxyDataSource = new ProxyDS(databaseSession, currentProps.get(PersistenceUnitProperties.JDBC_USER), currentProps.get(PersistenceUnitProperties.JDBC_PASSWORD));
proxyDataSource.add(schema1, ds1);
proxyDataSource.add(schema2, ds2);