Package mondrian.test

Class AccessControlTest


  • public class AccessControlTest
    extends FoodMartTestCase
    AccessControlTest is a set of unit-tests for access-control. For these tests, all of the roles are of type RoleImpl.
    Since:
    Feb 21, 2003
    Author:
    jhyde
    See Also:
    Role
    • Constructor Detail

      • AccessControlTest

        public AccessControlTest​(java.lang.String name)
    • Method Detail

      • testSchemaReader

        public void testSchemaReader()
      • testGrantDimensionNone

        public void testGrantDimensionNone()
      • testRestrictMeasures

        public void testRestrictMeasures()
      • testRoleMemberAccessNonExistentMemberFails

        public void testRoleMemberAccessNonExistentMemberFails()
      • testRoleMemberAccess

        public void testRoleMemberAccess()
      • testGrantHierarchy1a

        public void testGrantHierarchy1a()
      • testGrantHierarchy1aAllMembers

        public void testGrantHierarchy1aAllMembers()
      • testGrantHierarchy1b

        public void testGrantHierarchy1b()
      • testGrantHierarchy1c

        public void testGrantHierarchy1c()
      • testGrantHierarchy2

        public void testGrantHierarchy2()
      • testGrantHierarchy3

        public void testGrantHierarchy3()
      • testGrantHierarchy4

        public void testGrantHierarchy4()
      • testGrantHierarchy5

        public void testGrantHierarchy5()
      • testGrantHierarchy6

        public void testGrantHierarchy6()
      • testGrantHierarchy7

        public void testGrantHierarchy7()
      • testGrantHierarchy8

        public void testGrantHierarchy8()
      • testGrantHierarchy8AllMembers

        public void testGrantHierarchy8AllMembers()
      • testBugMondrian_1201_MultipleMembersInRoleAccessControl

        public void testBugMondrian_1201_MultipleMembersInRoleAccessControl()
        Tests for Mondrian BUG 1201 - Native Rollups did not handle access-control with more than one member where granted access=all
      • testBugMondrian_1201_CacheAwareOfRoleAccessControl

        public void testBugMondrian_1201_CacheAwareOfRoleAccessControl()
      • testBugMondrian1127OneSlicerOnly

        public void testBugMondrian1127OneSlicerOnly()
        Tests for Mondrian BUG 1127 - Native Top Count was not taking into account user roles
      • testBugMondrian1127MultipleSlicers

        public void testBugMondrian1127MultipleSlicers()
      • testGrantHierarchy9

        public void testGrantHierarchy9()
        Tests that we only aggregate over SF, LA, even when called from functions.
      • testGrantHierarchyA

        public void testGrantHierarchyA()
      • _testSharedObjectsInGrantMappingsBug

        public void _testSharedObjectsInGrantMappingsBug()
      • testNoAccessToCube

        public void testNoAccessToCube()
      • testRollupPolicyBasic

        public void testRollupPolicyBasic()
        Basic test of partial rollup policy. [USA] = [OR] + [WA], not the usual [CA] + [OR] + [WA].
      • testRollupPolicyAll

        public void testRollupPolicyAll()
        The total for [Store].[All Stores] is similarly reduced. All children of [All Stores] are visible, but one grandchild is not. Normally the total is 266,773.
      • testRollupPolicyAllAsDefault

        public void testRollupPolicyAllAsDefault()
        Access [Store].[All Stores] implicitly as it is the default member of the [Stores] hierarchy.
      • testRollupPolicyAllAsParent

        public void testRollupPolicyAllAsParent()
        Access [Store].[All Stores] via the Parent relationship (to check that this doesn't circumvent access control).
      • testRollupBottomLevel

        public void testRollupBottomLevel()
        Tests that members below bottom level are regarded as visible.
      • testRollupPolicyNegative

        public void testRollupPolicyNegative()
        Tests that a bad value for the rollupPolicy attribute gives the appropriate error.
      • testRollupPolicyGreatGrandchildInvisible

        public void testRollupPolicyGreatGrandchildInvisible()
        Tests where all children are visible but a grandchild is not.
      • testRollupPolicySimultaneous

        public void testRollupPolicySimultaneous()
        Tests where two hierarchies are simultaneously access-controlled.
      • testUnionRole

        public void testUnionRole()
      • testUnionRoleHasInaccessibleDescendants

        public void testUnionRoleHasInaccessibleDescendants()
                                                     throws java.lang.Exception
        This is a test for MONDRIAN-1384
        Throws:
        java.lang.Exception
      • testRoleUnionWithLevelRestrictions

        public void testRoleUnionWithLevelRestrictions()
                                                throws java.lang.Exception
        This is a test for MONDRIAN-1168 Union of roles would sometimes return levels which should be restricted by ACL.
        Throws:
        java.lang.Exception
      • testNonEmptyAccessLevelMembers

        public void testNonEmptyAccessLevelMembers()
      • testPartialRollupParentChildHierarchy

        public void testPartialRollupParentChildHierarchy()
      • testParentChildUserDefinedRole

        public void testParentChildUserDefinedRole()
      • testBugBiserver2491

        public void testBugBiserver2491()
        this tests the fix for http://jira.pentaho.com/browse/BISERVER-2491 rollupPolicy=partial and queries to upper members don't work
      • testBugMondrian568

        public void testBugMondrian568()
        Test for bug MONDRIAN-568. Grants on OLAP elements are validated by name, thus granting implicit access to all cubes which have a dimension with the same name.
      • testDimensionGrant

        public void testDimensionGrant()
                                throws java.lang.Exception
        Throws:
        java.lang.Exception
      • testMondrian1030

        public void testMondrian1030()
                              throws java.lang.Exception
        This is a test for MONDRIAN-1030. When the top level of a hierarchy is not accessible and a partial rollup policy is used, the results would be returned as those of the first member of those accessible only.

        ie: If a union of roles give access to two two sibling root members and the level to which they belong is not included in a query, the returned cell data would be that of the first sibling and would exclude those of the second.

        This is because the RolapEvaluator cannot represent default members as multiple members (only a single member is the default member) and because the default member is not the 'all member', it adds a constrain to the SQL for the first member only.

        Currently, Mondrian disguises the root member in the evaluator as a RestrictedMemberReader.MultiCardinalityDefaultMember. Later, RolapHierarchy.LimitedRollupSubstitutingMemberReader will recognize it and use the correct rollup policy on the parent member to generate correct SQL.

        Throws:
        java.lang.Exception
      • testBugMondrian1030_2

        public void testBugMondrian1030_2()
        This is a test for MONDRIAN-1030 When a query is based on a level higher than one in the same hierarchy which has access controls, it would only constrain at the current level if the rollup policy of partial is used.

        Example. A query on USA where only Los-Angeles is accessible would return the values for California instead of only LA.

      • testMondrian1091

        public void testMondrian1091()
                              throws java.lang.Exception
        Test for MONDRIAN-1091 The RoleImpl would try to search for member grants by object identity rather than unique name. When using the partial rollup policy, the members are wrapped, so identity checks would fail.
        Throws:
        java.lang.Exception
      • testMondrian1295

        public void testMondrian1295()
                              throws java.lang.Exception
        Throws:
        java.lang.Exception
      • testMondrian936

        public void testMondrian936()
                             throws java.lang.Exception
        Throws:
        java.lang.Exception
      • testMondrian1434

        public void testMondrian1434()
      • testMondrian1486

        public void testMondrian1486()
                              throws java.lang.Exception
        Fix for MONDRIAN-1486 When NECJ was used, a call to RolapNativeCrossJoin.createEvaluator would swap the RolapHierarchy.LimitedRollupMember for the regular all member of the hierarchy, effectively removing security constraints.
        Throws:
        java.lang.Exception
      • testRollupPolicyWithNative

        public void testRollupPolicyWithNative()
      • testValidMeasureWithRestrictedCubes

        public void testValidMeasureWithRestrictedCubes()