Skip to content

Commit

Permalink
MONDRIAN: Give error if base cube of virtual cube does not exist.
Browse files Browse the repository at this point in the history
[git-p4: depot-paths = "//open/mondrian/": change = 13553]
  • Loading branch information
julianhyde committed Apr 18, 2010
1 parent 405fb25 commit b60bed0
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
4 changes: 4 additions & 0 deletions src/main/mondrian/rolap/RolapCube.java
Expand Up @@ -469,6 +469,10 @@ static CellFormatter getCellFormatter(
{
// Lookup a measure in an existing cube.
RolapCube cube = schema.lookupCube(xmlMeasure.cubeName);
if (cube == null) {
throw Util.newError(
"Cube '" + xmlMeasure.cubeName + "' not found");
}
List<Member> cubeMeasures = cube.getMeasures();
boolean found = false;
for (Member cubeMeasure : cubeMeasures) {
Expand Down
19 changes: 19 additions & 0 deletions testsrc/main/mondrian/rolap/VirtualCubeTest.java
Expand Up @@ -94,6 +94,25 @@ public void testDefaultMeasureInVCForIncorrectMeasureName() {
assertQueriesReturnSimilarResults(query1, query2, testContext);
}

public void testVirtualCubeMeasureInvalidCubeName() {
TestContext testContext = TestContext.create(
null,
null,
"<VirtualCube name=\"Sales vs Warehouse\">\n"
+ "<VirtualCubeDimension name=\"Product\"/>\n"
+ "<VirtualCubeMeasure cubeName=\"Warehouse\" "
+ "name=\"[Measures].[Warehouse Sales]\"/>\n"
+ "<VirtualCubeMeasure cubeName=\"Bad cube\" "
+ "name=\"[Measures].[Unit Sales]\"/>\n"
+ "</VirtualCube>",
null,
null,
null);
testContext.assertQueryThrows(
"select from [Sales vs Warehouse]",
"Cube 'Bad cube' not found");
}

public void testDefaultMeasureInVCForCaseSensitivity() {
TestContext testContext = TestContext.create(
null,
Expand Down

0 comments on commit b60bed0

Please sign in to comment.