mondrian.test
Class CompatibilityTest

java.lang.Object
  extended by junit.framework.Assert
      extended by junit.framework.TestCase
          extended by mondrian.test.FoodMartTestCase
              extended by mondrian.test.CompatibilityTest
All Implemented Interfaces:
junit.framework.Test

public class CompatibilityTest
extends FoodMartTestCase

Test for MDX syntax compatibility with Microsoft and SAS servers.

There is no MDX spec document per se, so compatibility with de facto standards from the major vendors is important. Uses the FoodMart database.

Since:
March 30, 2005
Author:
sasebb
See Also:
Ssas2005CompatibilityTest

Nested Class Summary
 
Nested classes/interfaces inherited from class mondrian.test.FoodMartTestCase
FoodMartTestCase.QueryAndResult
 
Field Summary
 
Fields inherited from class mondrian.test.FoodMartTestCase
propSaver
 
Constructor Summary
CompatibilityTest(String name)
           
 
Method Summary
 void testCalculatedMemberCase()
          Calculated member names are case insensitive.
 void testCaseInsensitiveNullMember()
          Tests that a #null member on a Hiearchy Level of type String can still be looked up when case sensitive is off.
 void testCubeBrackets()
          Brackets around cube names are optional.
 void testCubeCase()
          Cube names are case insensitive.
 void testDimensionBrackets()
          Brackets around dimension names are optional.
 void testDimensionCase()
          Dimension names are case insensitive.
 void testHierarchyNames()
          Hierarchy names of the form [Dim].[Hier], [Dim.Hier], and Dim.Hier are accepted.
 void testMemberBrackets()
          Brackets around member names are optional.
 void testMemberCase()
          Member names are case insensitive.
 void testNullCollation()
          Tests that NULL values sort last on all platforms.
 void testNullNameColumn()
          Tests that data in Hierarchy.Level attribute "nameColumn" can be null.
 void testPropertyCaseSensitivity()
          Tests that property names are case sensitive iff the "mondrian.olap.case.sensitive" property is set.
 void testReservedWord()
          See how we are at diagnosing reserved words.
 void testSolveOrderCase()
          Solve order is case insensitive.
 void testWithDimensionPrefix()
           
 void testWithNoDimensionPrefix()
           
 
Methods inherited from class mondrian.test.FoodMartTestCase
allMember, assertAxisReturns, assertAxisThrows, assertBooleanExprReturns, assertExprReturns, assertExprThrows, assertQueriesReturnSimilarResults, assertQueryReturns, assertQueryThrows, assertSize, cubeByName, execute, executeExpr, executeQuery, executeSingletonAxis, genderMembersIncludingAll, getConnection, getDimensionWithName, getTestContext, isDefaultNullMemberRepresentation, isGroupingSetsSupported, member, productMembersPotScrubbersPotsAndPans, storeMembersCAAndOR, storeMembersUsaAndCanada, tearDown, warehouseMembersCanadaMexicoUsa
 
Methods inherited from class junit.framework.TestCase
countTestCases, createResult, getName, run, run, runBare, runTest, setName, setUp, toString
 
Methods inherited from class junit.framework.Assert
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CompatibilityTest

public CompatibilityTest(String name)
Method Detail

testCubeCase

public void testCubeCase()
Cube names are case insensitive.


testCubeBrackets

public void testCubeBrackets()
Brackets around cube names are optional.


testReservedWord

public void testReservedWord()
See how we are at diagnosing reserved words.


testDimensionCase

public void testDimensionCase()
Dimension names are case insensitive.


testDimensionBrackets

public void testDimensionBrackets()
Brackets around dimension names are optional.


testMemberCase

public void testMemberCase()
Member names are case insensitive.


testCalculatedMemberCase

public void testCalculatedMemberCase()
Calculated member names are case insensitive.


testSolveOrderCase

public void testSolveOrderCase()
Solve order is case insensitive.


testMemberBrackets

public void testMemberBrackets()
Brackets around member names are optional.


testHierarchyNames

public void testHierarchyNames()
Hierarchy names of the form [Dim].[Hier], [Dim.Hier], and Dim.Hier are accepted.


testCaseInsensitiveNullMember

public void testCaseInsensitiveNullMember()
Tests that a #null member on a Hiearchy Level of type String can still be looked up when case sensitive is off.


testNullNameColumn

public void testNullNameColumn()
Tests that data in Hierarchy.Level attribute "nameColumn" can be null. This will map to the #null memeber.


testNullCollation

public void testNullCollation()
Tests that NULL values sort last on all platforms. On some platforms, such as MySQL, NULLs naturally come before other values, so we have to generate a modified ORDER BY clause.


testPropertyCaseSensitivity

public void testPropertyCaseSensitivity()
Tests that property names are case sensitive iff the "mondrian.olap.case.sensitive" property is set.

The test does not alter this property: for testing coverage, we assume that you run the test once with mondrian.olap.case.sensitive=true, and once with mondrian.olap.case.sensitive=false.


testWithDimensionPrefix

public void testWithDimensionPrefix()

testWithNoDimensionPrefix

public void testWithNoDimensionPrefix()

Get Mondrian at SourceForge.net. Fast, secure and free Open Source software downloads