Skip to content

Commit

Permalink
DRILLTHROUGH tests now close ResultSet
Browse files Browse the repository at this point in the history
git-svn-id: https://olap4j.svn.sourceforge.net/svnroot/olap4j/trunk@550 c6a108a4-781c-0410-a6c6-c2d559e19af0
  • Loading branch information
julianhyde committed Oct 3, 2012
1 parent c5f9dfc commit 7bc91ff
Showing 1 changed file with 168 additions and 73 deletions.
241 changes: 168 additions & 73 deletions testsrc/org/olap4j/ConnectionTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -1190,15 +1190,18 @@ public void testCell() throws Exception {
break;
default:
final ResultSet resultSet = cell.drillThrough();
final ResultSetMetaData metaData = resultSet.getMetaData();
// Most databases return 5 columns. Derby returns 9 because of
// 4 columns in the ORDER BY clause.
assertTrue(metaData.getColumnCount() >= 5);
assertEquals("Quarter", metaData.getColumnLabel(1));
assertEquals("Quarter_0", metaData.getColumnLabel(2));
assertEquals("Month", metaData.getColumnLabel(3));
assertEquals("Store Sales", metaData.getColumnLabel(11));
resultSet.close();
try {
final ResultSetMetaData metaData = resultSet.getMetaData();
// Most databases return 5 columns. Derby returns 9 because of
// 4 columns in the ORDER BY clause.
assertTrue(metaData.getColumnCount() >= 5);
assertEquals("Quarter", metaData.getColumnLabel(1));
assertEquals("Quarter_0", metaData.getColumnLabel(2));
assertEquals("Month", metaData.getColumnLabel(3));
assertEquals("Store Sales", metaData.getColumnLabel(11));
} finally {
resultSet.close();
}
break;
}

Expand Down Expand Up @@ -2999,17 +3002,28 @@ public void testCubesDrillthroughReturnClause() throws Exception {
connection = tester.createConnection();
OlapConnection olapConnection =
tester.getWrapper().unwrap(connection, OlapConnection.class);
ResultSet rs = olapConnection.createStatement().executeQuery(
"DRILLTHROUGH SELECT {[Measures].[Unit Sales]} on columns from [Sales] where ([Promotions].[One Day Sale], [Store].[Store City].[Walla Walla], [Product].[Product Category].[Bread]) RETURN [Customers].[Name], [Gender].[Gender]");
assertDrillRowsEquals(
rs,
ResultSet rs =
olapConnection.createStatement().executeQuery(
"DRILLTHROUGH\n"
+ "SELECT {[Measures].[Unit Sales]} on columns\n"
+ "from [Sales]\n"
+ "where ([Promotions].[One Day Sale],\n"
+ " [Store].[Store City].[Walla Walla],\n"
+ " [Product].[Product Category].[Bread])\n"
+ "RETURN [Customers].[Name], [Gender].[Gender]");
try {
assertDrillRowsEquals(
rs,
new String[] {
"ROW:5956.0,M,",
"ROW:6013.0,M,",
"ROW:7293.0,M,",
"ROW:7683.0,F,",
"ROW:7683.0,F,"
});
} finally {
rs.close();
}
}

/**
Expand All @@ -3027,17 +3041,28 @@ public void testCubesDrillthroughReturnClause2() throws Exception {
connection = tester.createConnection();
OlapConnection olapConnection =
tester.getWrapper().unwrap(connection, OlapConnection.class);
ResultSet rs = olapConnection.createStatement().executeQuery(
"DRILLTHROUGH SELECT {[Measures].[Unit Sales]} on columns from [Sales] where ([Promotions].[One Day Sale], [Store].[Store City].[Walla Walla], [Product].[Product Category].[Bread]) RETURN [Customers].[Name]");
assertDrillRowsEquals(
rs,
new String[] {
"ROW:5956.0,",
"ROW:6013.0,",
"ROW:7293.0,",
"ROW:7683.0,",
"ROW:7683.0,"
});
ResultSet rs =
olapConnection.createStatement().executeQuery(
"DRILLTHROUGH\n"
+ "SELECT {[Measures].[Unit Sales]} on columns\n"
+ "from [Sales]\n"
+ "where ([Promotions].[One Day Sale],\n"
+ " [Store].[Store City].[Walla Walla],\n"
+ " [Product].[Product Category].[Bread])\n"
+ "RETURN [Customers].[Name]");
try {
assertDrillRowsEquals(
rs,
new String[] {
"ROW:5956.0,",
"ROW:6013.0,",
"ROW:7293.0,",
"ROW:7683.0,",
"ROW:7683.0,"
});
} finally {
rs.close();
}
}

/**
Expand All @@ -3055,17 +3080,28 @@ public void testCubesDrillthroughReturnClause3() throws Exception {
connection = tester.createConnection();
OlapConnection olapConnection =
tester.getWrapper().unwrap(connection, OlapConnection.class);
ResultSet rs = olapConnection.createStatement().executeQuery(
"DRILLTHROUGH SELECT from [Sales] where ([Promotions].[One Day Sale], [Store].[Store City].[Walla Walla], [Product].[Product Category].[Bread]) RETURN [Customers].[Name]");
assertDrillRowsEquals(
rs,
new String[] {
"ROW:5956.0,",
"ROW:6013.0,",
"ROW:7293.0,",
"ROW:7683.0,",
"ROW:7683.0,"
});
ResultSet rs =
olapConnection.createStatement().executeQuery(
"DRILLTHROUGH\n"
+ "SELECT\n"
+ "from [Sales]\n"
+ "where ([Promotions].[One Day Sale],\n"
+ " [Store].[Store City].[Walla Walla],\n"
+ " [Product].[Product Category].[Bread])\n"
+ "RETURN [Customers].[Name]");
try {
assertDrillRowsEquals(
rs,
new String[] {
"ROW:5956.0,",
"ROW:6013.0,",
"ROW:7293.0,",
"ROW:7683.0,",
"ROW:7683.0,"
});
} finally {
rs.close();
}
}

/**
Expand All @@ -3083,16 +3119,23 @@ public void testCubesDrillthroughReturnClause4() throws Exception {
connection = tester.createConnection();
OlapConnection olapConnection =
tester.getWrapper().unwrap(connection, OlapConnection.class);
ResultSet rs = olapConnection.createStatement().executeQuery(
"DRILLTHROUGH SELECT {[Promotions].[One Day Sale]} on columns, "
+ "{[Store].[Store City].[Walla Walla]} on rows "
+ "from [Sales] where ([Product].[Product Category].[Pizza]) "
+ "RETURN [Measures].[Unit Sales], [Measures].[Store Sales]");
assertDrillRowsEquals(
rs,
new String[] {
"ROW:1.0,0.8,"
});
ResultSet rs =
olapConnection.createStatement().executeQuery(
"DRILLTHROUGH\n"
+ "SELECT {[Promotions].[One Day Sale]} on columns,\n"
+ "{[Store].[Store City].[Walla Walla]} on rows\n"
+ "from [Sales]\n"
+ "where ([Product].[Product Category].[Pizza])\n"
+ "RETURN [Measures].[Unit Sales], [Measures].[Store Sales]");
try {
assertDrillRowsEquals(
rs,
new String[] {
"ROW:1.0,0.8,"
});
} finally {
rs.close();
}
}

/**
Expand All @@ -3110,16 +3153,23 @@ public void testCubesDrillthroughReturnClause5() throws Exception {
connection = tester.createConnection();
OlapConnection olapConnection =
tester.getWrapper().unwrap(connection, OlapConnection.class);
ResultSet rs = olapConnection.createStatement().executeQuery(
"DRILLTHROUGH SELECT {[Promotions].[One Day Sale]} on columns, "
+ "{[Store].[Store City].[Walla Walla]} on rows "
+ "from [Sales] where ([Product].[Product Category].[Pizza]) "
+ "RETURN [Measures].[Store Sales]");
assertDrillRowsEquals(
rs,
new String[] {
"ROW:0.8,"
});
ResultSet rs =
olapConnection.createStatement().executeQuery(
"DRILLTHROUGH\n"
+ "SELECT {[Promotions].[One Day Sale]} on columns,\n"
+ "{[Store].[Store City].[Walla Walla]} on rows\n"
+ "from [Sales]\n"
+ "where ([Product].[Product Category].[Pizza])\n"
+ "RETURN [Measures].[Store Sales]");
try {
assertDrillRowsEquals(
rs,
new String[] {
"ROW:0.8,"
});
} finally {
rs.close();
}
}

/**
Expand All @@ -3137,13 +3187,24 @@ public void testCubesDrillthroughReturnClause6() throws Exception {
connection = tester.createConnection();
OlapConnection olapConnection =
tester.getWrapper().unwrap(connection, OlapConnection.class);
ResultSet rs = olapConnection.createStatement().executeQuery(
"DRILLTHROUGH SELECT {[Measures].[Unit Sales]} on columns from [Sales] where ([Promotions].[One Day Sale], [Store].[Store City].[Walla Walla], [Product].[Product Category].[Bread]) RETURN [Measures].[Store Sales]");
assertDrillRowsEquals(
rs,
ResultSet rs =
olapConnection.createStatement().executeQuery(
"DRILLTHROUGH\n"
+ "SELECT {[Measures].[Unit Sales]} on columns\n"
+ "from [Sales]\n"
+ "where ([Promotions].[One Day Sale],\n"
+ " [Store].[Store City].[Walla Walla],\n"
+ " [Product].[Product Category].[Bread])\n"
+ "RETURN [Measures].[Store Sales]");
try {
assertDrillRowsEquals(
rs,
new String[] {
"ROW:12.34,"
});
} finally {
rs.close();
}
}

/**
Expand All @@ -3161,13 +3222,24 @@ public void testCubesDrillthroughReturnClause7() throws Exception {
connection = tester.createConnection();
OlapConnection olapConnection =
tester.getWrapper().unwrap(connection, OlapConnection.class);
ResultSet rs = olapConnection.createStatement().executeQuery(
"DRILLTHROUGH SELECT {[Measures].[Unit Sales]} on columns from [Sales] where ([Promotions].[One Day Sale], [Store].[Store City].[Walla Walla], [Product].[Product Category].[Bread]) RETURN [Customers], [Measures].[Promotion Sales]");
assertDrillRowsEquals(
rs,
ResultSet rs =
olapConnection.createStatement().executeQuery(
"DRILLTHROUGH\n"
+ "SELECT {[Measures].[Unit Sales]} on columns\n"
+ "from [Sales]\n"
+ "where ([Promotions].[One Day Sale],\n"
+ " [Store].[Store City].[Walla Walla],\n"
+ " [Product].[Product Category].[Bread])\n"
+ "RETURN [Customers], [Measures].[Promotion Sales]");
try {
assertDrillRowsEquals(
rs,
new String[] {
"ROW:USA,12.34,"
});
} finally {
rs.close();
}
}

/**
Expand All @@ -3185,13 +3257,24 @@ public void testCubesDrillthroughReturnClause8() throws Exception {
connection = tester.createConnection();
OlapConnection olapConnection =
tester.getWrapper().unwrap(connection, OlapConnection.class);
ResultSet rs = olapConnection.createStatement().executeQuery(
"DRILLTHROUGH SELECT {[Measures].[Unit Sales]} on columns from [Sales] where ([Promotions].[One Day Sale], [Store].[Store City].[Walla Walla], [Product].[Product Category].[Bread]) RETURN [Customers].[City], [Measures].[Promotion Sales]");
assertDrillRowsEquals(
rs,
ResultSet rs =
olapConnection.createStatement().executeQuery(
"DRILLTHROUGH\n"
+ "SELECT {[Measures].[Unit Sales]} on columns\n"
+ "from [Sales]\n"
+ "where ([Promotions].[One Day Sale],\n"
+ " [Store].[Store City].[Walla Walla],\n"
+ " [Product].[Product Category].[Bread])\n"
+ "RETURN [Customers].[City], [Measures].[Promotion Sales]");
try {
assertDrillRowsEquals(
rs,
new String[] {
"ROW:WA,Walla Walla,12.34,"
});
} finally {
rs.close();
}
}

/**
Expand All @@ -3210,17 +3293,27 @@ public void testCubesDrillthroughReturnClause9() throws Exception {
connection = tester.createConnection();
OlapConnection olapConnection =
tester.getWrapper().unwrap(connection, OlapConnection.class);
ResultSet rs = olapConnection.createStatement().executeQuery(
"DRILLTHROUGH SELECT {[Measures].[Unit Sales]} on columns from [Sales] where ([Promotions].[One Day Sale], [Store].[Store City].[Walla Walla], [Product].[Product Category].[Bread])");
assertDrillRowsEquals(
rs,
ResultSet rs =
olapConnection.createStatement().executeQuery(
"DRILLTHROUGH\n"
+ "SELECT {[Measures].[Unit Sales]} on columns\n"
+ "from [Sales]\n"
+ "where ([Promotions].[One Day Sale],\n"
+ " [Store].[Store City].[Walla Walla],\n"
+ " [Product].[Product Category].[Bread])");
try {
assertDrillRowsEquals(
rs,
new String[] {
"ROW:WA,Walla Walla,Store 22,1997.0,Q3,8.0,Food,Baked Goods,Bread,Muffins,Great,Great Muffins,One Day Sale,1.0,",
"ROW:WA,Walla Walla,Store 22,1997.0,Q3,8.0,Food,Baked Goods,Bread,Muffins,Modell,Modell Cranberry Muffins,One Day Sale,1.0,",
"ROW:WA,Walla Walla,Store 22,1997.0,Q3,8.0,Food,Baked Goods,Bread,Sliced Bread,Colony,Colony White Bread,One Day Sale,2.0,",
"ROW:WA,Walla Walla,Store 22,1997.0,Q3,9.0,Food,Baked Goods,Bread,Muffins,Modell,Modell Blueberry Muffins,One Day Sale,1.0,",
"ROW:WA,Walla Walla,Store 22,1997.0,Q3,9.0,Food,Baked Goods,Bread,Sliced Bread,Sphinx,Sphinx Wheat Bread,One Day Sale,1.0,"
});
} finally {
rs.close();
}
}

/**
Expand Down Expand Up @@ -3249,12 +3342,14 @@ public void testCubesDrillthroughReturnClause10() throws Exception {
}

private void assertDrillRowsEquals(
ResultSet rs, String[] expected)
ResultSet rs,
String[] expected)
throws Exception
{
final List<String> rows = new ArrayList<String>();
StringBuilder sb = new StringBuilder();
while (rs.next()) {
StringBuilder sb = new StringBuilder();
sb.setLength(0);
sb.append("ROW:");
for (int i = 0; i < rs.getMetaData().getColumnCount(); i++) {
sb.append(
Expand Down

0 comments on commit 7bc91ff

Please sign in to comment.