Class TestGroupResourceCountUsers

java.lang.Object
com.atlassian.jira.functest.framework.BaseJiraFuncTest
com.atlassian.jira.webtests.ztests.user.TestGroupResourceCountUsers

public class TestGroupResourceCountUsers extends BaseJiraFuncTest
Test counts of users within groups.

This test compares whether the group counts we calculate (with a direct db query) match the number of users that Crowd considers to be in the group. This ensures our count query matches Crowd's rules around directory shadowing, nested groups, inactive users, etc.

The restored backup file contains multiple user directories with users and groups configured in various ways. Directories are described here, in priority order:

    Directory 1 (id = 1002, priority = 0)
    ===========
       Group                 | User
       ================================
       Koalas                | Anna
                             | Betty

       Wombats               | Catherine
                             | John (inactive)

       Wallabies (inactive)  | Catherine

       Sealife               | Anna

         -> Starfish         | Betty

       Lions                 | Leopold

    Directory 2 (id = 1001, priority = 1)
    ===========
       Group                 | User
       ================================
       Koalas                | Anna
                             | David

       Wombats               | David
                             | John

       Echidnas              | Ernie

       Sealife               | David

       Starfish              | Ernie

    Directory 3 (INACTIVE) (id = 2001, priority = 2)
    ===========
       Group                 | User
       ================================
       Lions                 | Leonardo

    Directory 4 (id = 3001, priority = 3)
    ===========
       Group                 | User
       ================================
       ground                | Bill
        -> hog               | Bill
           -> day            | Bill
                             | Andie

       DiamondTop            | White
        -> DiamondLeft       | Pink
           -> DiamondBottom  | Yellow
         -> DiamondRight     | Blue
           -> (DiamondBottom)| (Yellow)

       nest1                 | Owl
        -> nest2             | Robin
           -> nest3          | Frogmouth
              -> nest4       | Wren
                 -> nest5    | Lorikeet

       Hall                  | Louis
        -> Mirrors           | Jules
           -> (Hall)         | (Louis)
 

  • Field Details

  • Constructor Details

    • TestGroupResourceCountUsers

      public TestGroupResourceCountUsers()
  • Method Details

    • setup

      public void setup()
    • tearDown

      public void tearDown()
    • membersAreAmalgamatedAcrossDirectories

      public void membersAreAmalgamatedAcrossDirectories()
    • nestedGroupsAreObservedInUsersCanonicalDirectory

      public void nestedGroupsAreObservedInUsersCanonicalDirectory()
    • inactiveShadowedUsersAreIgnored

      public void inactiveShadowedUsersAreIgnored()
      A user made inactive by shadowing is not counted. This test also ensures that shadowing is determined by directory priority, not by directory ID. (Directory 1 has a higher priority, but a 'lower' ID)
    • inactiveDirectoriesAreIgnored

      public void inactiveDirectoriesAreIgnored()
    • inactiveGroupStillHasMembers

      public void inactiveGroupStillHasMembers()
    • groupsOnlyInLowerPriorityDirectoriesAreFound

      public void groupsOnlyInLowerPriorityDirectoriesAreFound()
    • groupNameIsCaseInsensitive

      public void groupNameIsCaseInsensitive()
    • memberOfMultipleNestedGroupsIsCountedOnce

      public void memberOfMultipleNestedGroupsIsCountedOnce()
    • deeplyNestedGroupsAreCountedCorrectly

      public void deeplyNestedGroupsAreCountedCorrectly()
    • diamonds_memberOfNestedGroupByTwoRoutesIsCountedOnce

      public void diamonds_memberOfNestedGroupByTwoRoutesIsCountedOnce()
    • cycles_cyclicalGroupMembershipsAreCountedCorrectly

      public void cycles_cyclicalGroupMembershipsAreCountedCorrectly()
    • countUsersIn2001NestedGroups

      public void countUsersIn2001NestedGroups()
      Test a group nesting containing 2001 nested groups can be successfully counted. On Oracle, this involves using a temporary table. On SQL Server, this involves using literals in place of SQL parameters.
    • getCountOfJiraUsersMembers

      public void getCountOfJiraUsersMembers()