Example #1
0
/**
 * Filter dynamic ugroups that contain project admins.
 * Retun is the number of non project admins
 * in the filtered ugroups.
 *
 * @param Integer $groupId
 * @param Array   $ugroups
 * @param Array   $validUgroups
 *
 * @return Integer
 */
function ugroup_count_non_admin_for_dynamic_ugroups($groupId, $ugroups, &$validUGroups)
{
    $containNonAdmin = 0;
    foreach ($ugroups as $ugroupId) {
        $sql = ugroup_db_get_dynamic_members($ugroupId, null, $groupId);
        $arrayUsers = ugroup_count_project_admins($groupId, $sql);
        if ($arrayUsers['admins'] > 0) {
            $validUGroups[] = $ugroupId;
            $containNonAdmin += $arrayUsers['non_admins'];
        }
    }
    return $containNonAdmin;
}
Example #2
0
 function testUgroupCountProjectAdminsMixed()
 {
     $this->skipUnless(MOCKFUNCTION_AVAILABLE, "Function mocking not available");
     if (MOCKFUNCTION_AVAILABLE) {
         MockFunction::setReturnValueAt(0, 'db_fetch_array', array('user_id' => 1));
         MockFunction::setReturnValueAt(1, 'db_fetch_array', array('user_id' => 2));
         MockFunction::setReturnValueAt(2, 'db_fetch_array', null);
         MockFunction::expectCallCount('db_fetch_array', 3);
         $user = new MockUser();
         $user->setReturnValueAt(0, 'isMember', true);
         $user->setReturnValueAt(1, 'isMember', false);
         $user->expectCallCount('isMeMber', 2);
         $um = new MockUserManager();
         $um->setReturnValue('getUserById', $user);
         MockFunction::setReturnValue('ugroup_get_user_manager', $um);
         $result = ugroup_count_project_admins(1, '');
         $this->assertEqual(1, $result['admins']);
         $this->assertEqual(1, $result['non_admins']);
     }
 }