mondrian.test
Class SolveOrderScopeIsolationTest

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

public class SolveOrderScopeIsolationTest
extends FoodMartTestCase

SolveOrderScopeIsolationTest Test conformance to SSAS2005 solve order scope isolation behavior. Scope Isolation: In SQL Server 2005 Analysis Services, when a cube Multidimensional Expressions (MDX) script contains calculated members, by default the calculated members are resolved before any session-scoped calculations are resolved and before any query-defined calculations are resolved. This is different from SQL Server 2000 Analysis Services behavior, where solve order can explicitly be used to insert a session-scoped or query-defined calculation in between two cube-level calculations. Further details at: http://msdn2.microsoft.com/en-us/library/ms144787.aspx This initial set of tests are added to indicate the kind of behavior that is expected to support this SSAS 2005 feature. All tests start with an underscore so as to not to execute even if the test class is added to Main

Since:
Apr 04, 2008
Author:
ajogleka

Nested Class Summary
 
Nested classes/interfaces inherited from class mondrian.test.FoodMartTestCase
FoodMartTestCase.QueryAndResult
 
Field Summary
(package private)  SolveOrderMode defaultSolveOrderMode
           
 
Fields inherited from class mondrian.test.FoodMartTestCase
propSaver
 
Constructor Summary
SolveOrderScopeIsolationTest()
           
 
Method Summary
 void _future_testOverrideCubeMemberHappensWithScopeIsolation()
          Test for future capability: SCOPE_ISOLATION=CUBE which is implemented in Analysis Services but not yet in Mondrian.
 TestContext getTestContext()
          Returns the test context.
(package private)  void setSolveOrderMode(SolveOrderMode mode)
           
 void setUp()
           
 void tearDown()
           
 void test2LevelOfOverrideCubeMemberDoesNotHappenAbsolute()
           
 void test2LevelOfOverrideCubeMemberDoesNotHappenScoped()
           
 void testAggregateMemberEvalAfterOtherMembersAbsolute()
          This test validates that behavior is consistent with Analysis Services 2000 when Solve order scope is ABSOLUTE.
 void testAggregateMemberEvalAfterOtherMembersScoped()
           
 void testAllSolveOrderModesHandled()
           
 void testConditionalAggregateMemberEvalAfterOtherMembersAbsolute()
          This test validates that behavior is consistent with Analysis Services 2000 when Solve order scope is ABSOLUTE.
 void testConditionalAggregateMemberEvalAfterOtherMembersScoped()
           
 void testConditionalCubeMemberEvalBeforeOtherMembersAbsolute()
           
 void testConditionalCubeMemberEvalBeforeOtherMembersScoped()
           
 void testCubeMemberEvalBeforeQueryMemberAbsolute()
           
 void testCubeMemberEvalBeforeQueryMemberScoped()
           
 void testOverrideCubeMemberDoesNotHappenAbsolute()
           
 void testOverrideCubeMemberDoesNotHappenScoped()
           
 void testOverrideCubeMemberInTupleDoesNotHappenAbsolute()
           
 void testOverrideCubeMemberInTupleDoesNotHappenScoped()
           
 void testOverrideCubeMemberUsingStrToMemberDoesNotHappenAbsolute()
           
 void testOverrideCubeMemberUsingStrToMemberDoesNotHappenScoped()
           
 void testSetSolveOrderMode()
           
 void testStrToMemberReturningAggEvalAfterOtherMembersAbsolute()
          This test validates that behavior is consistent with Analysis Services 2000 when Solve order scope is ABSOLUTE.
 void testStrToMemberReturningAggEvalAfterOtherMembersScoped()
           
 
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, isDefaultNullMemberRepresentation, isGroupingSetsSupported, member, productMembersPotScrubbersPotsAndPans, storeMembersCAAndOR, storeMembersUsaAndCanada, warehouseMembersCanadaMexicoUsa
 
Methods inherited from class junit.framework.TestCase
countTestCases, createResult, getName, run, run, runBare, runTest, setName, 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
 

Field Detail

defaultSolveOrderMode

SolveOrderMode defaultSolveOrderMode
Constructor Detail

SolveOrderScopeIsolationTest

public SolveOrderScopeIsolationTest()
Method Detail

setUp

public void setUp()
           throws Exception
Overrides:
setUp in class junit.framework.TestCase
Throws:
Exception

tearDown

public void tearDown()
              throws Exception
Overrides:
tearDown in class FoodMartTestCase
Throws:
Exception

setSolveOrderMode

final void setSolveOrderMode(SolveOrderMode mode)

getTestContext

public TestContext getTestContext()
Description copied from class: FoodMartTestCase
Returns the test context. Override this method if you wish to use a different source for your FoodMart connection.

Overrides:
getTestContext in class FoodMartTestCase

testAllSolveOrderModesHandled

public void testAllSolveOrderModesHandled()

testSetSolveOrderMode

public void testSetSolveOrderMode()

testOverrideCubeMemberDoesNotHappenAbsolute

public void testOverrideCubeMemberDoesNotHappenAbsolute()

testOverrideCubeMemberDoesNotHappenScoped

public void testOverrideCubeMemberDoesNotHappenScoped()

_future_testOverrideCubeMemberHappensWithScopeIsolation

public void _future_testOverrideCubeMemberHappensWithScopeIsolation()
Test for future capability: SCOPE_ISOLATION=CUBE which is implemented in Analysis Services but not yet in Mondrian.


testCubeMemberEvalBeforeQueryMemberAbsolute

public void testCubeMemberEvalBeforeQueryMemberAbsolute()

testCubeMemberEvalBeforeQueryMemberScoped

public void testCubeMemberEvalBeforeQueryMemberScoped()

testOverrideCubeMemberInTupleDoesNotHappenAbsolute

public void testOverrideCubeMemberInTupleDoesNotHappenAbsolute()

testOverrideCubeMemberInTupleDoesNotHappenScoped

public void testOverrideCubeMemberInTupleDoesNotHappenScoped()

testConditionalCubeMemberEvalBeforeOtherMembersAbsolute

public void testConditionalCubeMemberEvalBeforeOtherMembersAbsolute()

testConditionalCubeMemberEvalBeforeOtherMembersScoped

public void testConditionalCubeMemberEvalBeforeOtherMembersScoped()

testOverrideCubeMemberUsingStrToMemberDoesNotHappenAbsolute

public void testOverrideCubeMemberUsingStrToMemberDoesNotHappenAbsolute()

testOverrideCubeMemberUsingStrToMemberDoesNotHappenScoped

public void testOverrideCubeMemberUsingStrToMemberDoesNotHappenScoped()

testAggregateMemberEvalAfterOtherMembersAbsolute

public void testAggregateMemberEvalAfterOtherMembersAbsolute()
This test validates that behavior is consistent with Analysis Services 2000 when Solve order scope is ABSOLUTE. AS2K will throw an error whenever attempting to aggregate over calculated members (i.e. when the solve order of the Aggregate member is higher than the calculations it intersects with).


testAggregateMemberEvalAfterOtherMembersScoped

public void testAggregateMemberEvalAfterOtherMembersScoped()

testConditionalAggregateMemberEvalAfterOtherMembersAbsolute

public void testConditionalAggregateMemberEvalAfterOtherMembersAbsolute()
This test validates that behavior is consistent with Analysis Services 2000 when Solve order scope is ABSOLUTE. AS2K will throw an error whenever attempting to aggregate over calculated members (i.e. when the solve order of the Aggregate member is higher than the calculations it intersects with).


testConditionalAggregateMemberEvalAfterOtherMembersScoped

public void testConditionalAggregateMemberEvalAfterOtherMembersScoped()

testStrToMemberReturningAggEvalAfterOtherMembersAbsolute

public void testStrToMemberReturningAggEvalAfterOtherMembersAbsolute()
This test validates that behavior is consistent with Analysis Services 2000 when Solve order scope is ABSOLUTE. AS2K will throw an error whenever attempting to aggregate over calculated members (i.e. when the solve order of the Aggregate member is higher than the calculations it intersects with).


testStrToMemberReturningAggEvalAfterOtherMembersScoped

public void testStrToMemberReturningAggEvalAfterOtherMembersScoped()

test2LevelOfOverrideCubeMemberDoesNotHappenAbsolute

public void test2LevelOfOverrideCubeMemberDoesNotHappenAbsolute()

test2LevelOfOverrideCubeMemberDoesNotHappenScoped

public void test2LevelOfOverrideCubeMemberDoesNotHappenScoped()

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