Package mondrian.test

Class Ssas2005CompatibilityTest

  • Direct Known Subclasses:
    Ssas2005CompatibilityTest.NewBehaviorTest, Ssas2005CompatibilityTest.OldBehaviorTest

    public class Ssas2005CompatibilityTest
    extends FoodMartTestCase
    Unit tests that check compatibility with Microsoft SQL Server Analysis Services 2005.

    This suite contains a MDX collection of queries that were run on SSAS. The queries cover a variety of issues, including multiple hierarchies in a dimension, attribute hierarchies, and name resolution. Expect to find tests for these areas in dedicated tests also.

    There are tests for features which are unimplemented or where mondrian's behavior differs from SSAS2005. These tests will appear in this file disabled or with (clearly marked) incorrect results.

    Since:
    December 15, 2008
    Author:
    jhyde
    • Field Detail

      • ATTR_HIER_IMPL

        public static final boolean ATTR_HIER_IMPL
        Whether attribute hierarchies are implemented.
        See Also:
        Constant Field Values
      • AXIS_IMPL

        public static final boolean AXIS_IMPL
        Whether the AXIS function has been are implemented.
        See Also:
        Constant Field Values
    • Constructor Detail

      • Ssas2005CompatibilityTest

        public Ssas2005CompatibilityTest​(java.lang.String name)
        Creates a Ssas2005CompatibilityTest.
        Parameters:
        name - Testcase name
    • Method Detail

      • testUniqueName

        public void testUniqueName()
      • testDimensionDotHierarchyAmbiguous

        public void testDimensionDotHierarchyAmbiguous()
      • testHierarchyLevelsFunction

        public void testHierarchyLevelsFunction()
      • testDimensionDotHierarchyDotLevelDotMembers

        public void testDimensionDotHierarchyDotLevelDotMembers()
      • testDimensionDotHierarchyDotLevel

        public void testDimensionDotHierarchyDotLevel()
      • testNamingDimensionDotLevel

        public void testNamingDimensionDotLevel()
      • testNamingDimensionDotLevel2

        public void testNamingDimensionDotLevel2()
      • testNamingDimensionDotLevelNotUnique

        public void testNamingDimensionDotLevelNotUnique()
      • testDimensionMembersOnSingleHierarchyDimension

        public void testDimensionMembersOnSingleHierarchyDimension()
      • testMultipleHierarchyRequiresQualification

        public void testMultipleHierarchyRequiresQualification()
      • testCalcMemberAmbiguousHierarchy

        public void testCalcMemberAmbiguousHierarchy()
        Tests that it is an error to define a calc member in a dimension with multiple hierarchies without specifying hierarchy. Based on BasicQueryTest.testHalfYears().
      • testUnqualifiedHierarchy

        public void testUnqualifiedHierarchy()
      • testYtd

        public void testYtd()
        Tests that time functions such as Ytd behave correctly when there are multiple time hierarchies.
      • testAxesOutOfOrder

        public void testAxesOutOfOrder()
      • testDimensionMembersRequiresHierarchyQualification

        public void testDimensionMembersRequiresHierarchyQualification()
      • testDimensionMemberRequiresHierarchyQualification

        public void testDimensionMemberRequiresHierarchyQualification()
      • testImplicitCurrentMemberRequiresHierarchyQualification

        public void testImplicitCurrentMemberRequiresHierarchyQualification()
      • testUnqualifiedHierarchyCurrentMember

        public void testUnqualifiedHierarchyCurrentMember()
      • testCannotDistinguishMdxFromSql

        public void testCannotDistinguishMdxFromSql()
      • testNamingDimensionAttr

        public void testNamingDimensionAttr()
      • testNamingDimensionAttrVsLevel

        public void testNamingDimensionAttrVsLevel()
      • testAttrHierarchyMemberParent

        public void testAttrHierarchyMemberParent()
      • testAttrHierarchyMemberChildren

        public void testAttrHierarchyMemberChildren()
      • testAttrHierarchyAllMemberChildren

        public void testAttrHierarchyAllMemberChildren()
      • testAttrHierarchyMemberLevel

        public void testAttrHierarchyMemberLevel()
      • testAttrHierarchyUniqueName

        public void testAttrHierarchyUniqueName()
      • testMemberAddressedByLevelAndKey

        public void testMemberAddressedByLevelAndKey()
      • testMemberAddressedByCompoundKey

        public void testMemberAddressedByCompoundKey()
      • testMemberAddressedByPartialCompoundKey

        public void testMemberAddressedByPartialCompoundKey()
      • testMemberAddressedByNonUniqueName

        public void testMemberAddressedByNonUniqueName()
      • testMemberAddressedByLevelAndCompoundKey

        public void testMemberAddressedByLevelAndCompoundKey()
      • testMemberAddressedByLevelAndName

        public void testMemberAddressedByLevelAndName()
      • testFoo31

        public void testFoo31()
      • testFoo32

        public void testFoo32()
      • testNamingAttrVsLevel

        public void testNamingAttrVsLevel()
      • testUnqualifiedLevel

        public void testUnqualifiedLevel()
      • testDimensionAsScalarExpression

        public void testDimensionAsScalarExpression()
      • testDimensionWithMultipleHierarchiesDotParent

        public void testDimensionWithMultipleHierarchiesDotParent()
      • testDimensionDotHierarchyInBrackets

        public void testDimensionDotHierarchyInBrackets()
      • testDimensionDotHierarchySameNameInBrackets

        public void testDimensionDotHierarchySameNameInBrackets()
        Test case for bug 2688790, "Hierarchy Naming Compatibility issue". Occurs when dimension and hierarchy have the same name and are used with [name.name].
      • testDimensionDotLevelDotHierarchyInBrackets

        public void testDimensionDotLevelDotHierarchyInBrackets()
      • testDimensionDotInvalidHierarchyInBrackets

        public void testDimensionDotInvalidHierarchyInBrackets()
      • testDimensionDotDimensionInBrackets

        public void testDimensionDotDimensionInBrackets()
      • testDimensionDotHierarchyDotNonExistentLevel

        public void testDimensionDotHierarchyDotNonExistentLevel()
      • testDimensionDotHierarchyDotLevelMembers

        public void testDimensionDotHierarchyDotLevelMembers()
      • testDupHierarchyOnAxes

        public void testDupHierarchyOnAxes()
      • testDimensionOnAxis

        public void testDimensionOnAxis()
      • testDimensionDotHierarchyOnAxis

        public void testDimensionDotHierarchyOnAxis()
      • testHierarchiesFromSameDimensionOnAxes

        public void testHierarchiesFromSameDimensionOnAxes()
      • testDifferentHierarchiesFromSameDimensionOnAxes

        public void testDifferentHierarchiesFromSameDimensionOnAxes()
      • testDifferentHierarchiesFromSameDimensionInCrossjoin

        public void testDifferentHierarchiesFromSameDimensionInCrossjoin()
      • testHierarchyUsedTwiceInCrossjoin

        public void testHierarchyUsedTwiceInCrossjoin()
      • testAttributeHierarchyUsedTwiceInCrossjoin

        public void testAttributeHierarchyUsedTwiceInCrossjoin()
      • testFoo50

        public void testFoo50()
      • testQuoteInStringInQuotedFormula

        public void testQuoteInStringInQuotedFormula()
      • testQuoteInStringInUnquotedFormula

        public void testQuoteInStringInUnquotedFormula()
      • testMemberIdentifiedByDimensionAndKey

        public void testMemberIdentifiedByDimensionAndKey()
      • testDimensionHierarchyKey

        public void testDimensionHierarchyKey()
      • testCompoundKey

        public void testCompoundKey()
      • testCompoundKeySyntaxError

        public void testCompoundKeySyntaxError()
      • testCompoundKeyStringBad

        public void testCompoundKeyStringBad()
      • testCompoundKeyString

        public void testCompoundKeyString()
      • testNameAfterKey

        public void testNameAfterKey()
        Tests a member where a name segments [San Francisco].[Store 14] occur after a key segment &&CA.

        Needs to work regardless of the value of MondrianProperties.SsasCompatibleNaming. Mondrian-3 had this functionality.

      • testNameAfterCompositeKey

        public void testNameAfterCompositeKey()
        Tests a member where a name segment [Store 14] occurs after a composite key segment &[San Francisco]&CA.
      • testCompoundKeyAll

        public void testCompoundKeyAll()
      • testCompoundKeyParent

        public void testCompoundKeyParent()
      • testCompoundKeyNull

        public void testCompoundKeyNull()
      • testFoo56

        public void testFoo56()
      • testKeyNonExistent

        public void testKeyNonExistent()
      • testAxesLabelsOutOfSequence

        public void testAxesLabelsOutOfSequence()
      • testAxisLabelsNotContiguousFails

        public void testAxisLabelsNotContiguousFails()
      • testLotsOfAxes

        public void testLotsOfAxes()
      • testOnAxesFails

        public void testOnAxesFails()
      • testOnExpression

        public void testOnExpression()
      • testOnFractionFails

        public void testOnFractionFails()
      • testAxisFunction

        public void testAxisFunction()
      • testAxisAppliedToExpr

        public void testAxisAppliedToExpr()
      • testAxisFunctionReferencesPreviousAxis

        public void testAxisFunctionReferencesPreviousAxis()
      • testAxisFunctionReferencesSameAxisFails

        public void testAxisFunctionReferencesSameAxisFails()
      • testAxisFunctionReferencesSameAxisZeroFails

        public void testAxisFunctionReferencesSameAxisZeroFails()
      • testAxisFunctionReferencesLaterAxis

        public void testAxisFunctionReferencesLaterAxis()
      • testAxisFunctionReferencesSameAxisInlineFails

        public void testAxisFunctionReferencesSameAxisInlineFails()
      • testCrossjoinMember

        public void testCrossjoinMember()
      • testCanHaveMemberWithSameNameAsLevel

        public void testCanHaveMemberWithSameNameAsLevel()
                                                  throws java.sql.SQLException
        Tests the ambiguity between a level and a member of the same name, both in SSAS compatible mode and in regular mode.
        Throws:
        java.sql.SQLException - If the test fails.
      • testMemberNameSortCaseSensitivity

        public void testMemberNameSortCaseSensitivity()
      • testRootMembers

        public void testRootMembers()
        SSAS can resolve root members of a hierarchy even if not qualified by hierarchy, and even if the dimension has more than one hierarchy.