diff --git a/testsrc/org/olap4j/MetadataTest.java b/testsrc/org/olap4j/MetadataTest.java index 1531adf..476acec 100644 --- a/testsrc/org/olap4j/MetadataTest.java +++ b/testsrc/org/olap4j/MetadataTest.java @@ -24,10 +24,10 @@ public class MetadataTest extends TestCase { private static final String NL = System.getProperty("line.separator"); private final TestContext.Tester tester; - private final Connection connection; - private final String catalogName; - private final OlapConnection olapConnection; - private final OlapDatabaseMetaData olapDatabaseMetaData; + private Connection connection; + private String catalogName; + private OlapConnection olapConnection; + private OlapDatabaseMetaData olapDatabaseMetaData; private final String propertyNamePattern = null; private final String dataSourceName = "xx"; @@ -49,13 +49,23 @@ public class MetadataTest extends TestCase { public MetadataTest() throws SQLException { tester = TestContext.instance().getTester(); + } + + protected void setUp() throws SQLException { connection = tester.createConnection(); catalogName = connection.getCatalog(); olapConnection = - ((OlapWrapper) connection).unwrap(OlapConnection.class); + tester.getWrapper().unwrap(connection, OlapConnection.class); olapDatabaseMetaData = olapConnection.getMetaData(); } + protected void tearDown() throws Exception { + if (connection != null && !connection.isClosed()) { + connection.close(); + connection = null; + } + } + // ~ Helper methods ---------- private void assertContains(String seek, String s) { diff --git a/testsrc/org/olap4j/test/ParserTest.java b/testsrc/org/olap4j/test/ParserTest.java index bd3fdfb..75bf760 100644 --- a/testsrc/org/olap4j/test/ParserTest.java +++ b/testsrc/org/olap4j/test/ParserTest.java @@ -18,6 +18,7 @@ import org.olap4j.Axis; import java.sql.SQLException; +import java.sql.Connection; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -36,14 +37,31 @@ public class ParserTest extends TestCase { Pattern.compile( "(?s)From line ([0-9]+), column ([0-9]+) to line ([0-9]+), column ([0-9]+): (.*)"); + final TestContext testContext = TestContext.instance(); + private Connection connection; + public ParserTest(String name) { super(name); } + protected OlapConnection getOlapConnection() throws SQLException { + if (connection == null) { + connection = testContext.getTester().createConnection(); + } + return testContext.getTester().getWrapper().unwrap( + connection, OlapConnection.class); + } + + protected void tearDown() throws Exception { + if (connection != null && !connection.isClosed()) { + connection.close(); + connection = null; + } + } + private MdxParser createParser() { try { - OlapConnection olapConnection = - TestContext.instance().getOlapConnection(); + OlapConnection olapConnection = getOlapConnection(); return olapConnection.getParserFactory() .createMdxParser(olapConnection); } catch (SQLException e) { @@ -185,9 +203,7 @@ public void testUnparse() { private void checkUnparse(String queryString, final String expected) { try { - final TestContext testContext = TestContext.instance(); - - OlapConnection olapConnection = testContext.getOlapConnection(); + OlapConnection olapConnection = getOlapConnection(); MdxParser mdxParser = olapConnection.getParserFactory() .createMdxParser(olapConnection); @@ -528,7 +544,7 @@ public void testId() { // todo: enable this public void _testCloneQuery() throws SQLException { - OlapConnection olapConnection = TestContext.instance().getOlapConnection(); + OlapConnection olapConnection = getOlapConnection(); MdxParser mdxParser = olapConnection.getParserFactory() .createMdxParser(olapConnection); diff --git a/testsrc/org/olap4j/test/TestContext.java b/testsrc/org/olap4j/test/TestContext.java index 9a47428..7e07c41 100644 --- a/testsrc/org/olap4j/test/TestContext.java +++ b/testsrc/org/olap4j/test/TestContext.java @@ -193,17 +193,6 @@ public static TestContext instance() { return INSTANCE; } - /** - * Creates a connection to the test's default OLAP server. - * - * @return connection - * @throws SQLException on error - */ - public OlapConnection getOlapConnection() throws SQLException { - java.sql.Connection connection = tester.createConnection(); - return ((OlapWrapper) connection).unwrap(OlapConnection.class); - } - /** * Checks that an actual string matches an expected string. If they do not, * throws a {@link junit.framework.ComparisonFailure} and prints the