示例#1
0
 public function testRolesCache()
 {
     $includedRole = $this->service->addRole('INCLUDED ROLE');
     $role = $this->service->addRole('CACHE ROLE', $includedRole);
     // Nothing is in the cache, we should get an exception.
     try {
         core_kernel_users_Cache::retrieveIncludedRoles($role);
         $this->assertTrue(false, 'An exception should be raised when trying to retrieve included roles that are not yet in the cache memory.');
     } catch (core_kernel_users_CacheException $e) {
         $this->assertTrue(true);
     }
     $includedRoles = $this->service->getIncludedRoles($role);
     $this->assertEquals(count($includedRoles), 1);
     $this->assertTrue(array_key_exists($includedRole->getUri(), $includedRoles));
     // try to put included roles in the cache.
     try {
         core_kernel_users_Cache::cacheIncludedRoles($role, $includedRoles);
         // now try to retrieve it.
         $includedRolesFromCache = core_kernel_users_Cache::retrieveIncludedRoles($role);
         $this->assertTrue(is_array($includedRolesFromCache));
         $this->assertEquals(count($includedRolesFromCache), 1);
         $this->assertTrue(array_key_exists($includedRole->getUri(), $includedRolesFromCache));
         // and remove it !
         $this->assertTrue(core_kernel_users_Cache::removeIncludedRoles($role));
         $this->assertFalse(core_kernel_users_Cache::areIncludedRolesInCache($role));
     } catch (core_kernel_users_CacheException $e) {
         $this->assertTrue(false, 'An exception occured while writing included roles in the cache memory.');
     }
     // try to flush users cache.
     try {
         core_kernel_users_Cache::flush();
     } catch (core_kernel_users_CacheException $e) {
         $this->assertTrue(false, 'An error occured while flushing the users cache.');
     }
     $includedRole->delete();
     $role->delete();
 }
示例#2
0
 /**
  * Creates a new Role in persistent memory.
  *
  * @param string label The label of the new role.
  * @param mixed includedRoles The roles to include to the new role. Can be either a core_kernel_classes_Resource or an array of core_kernel_classes_Resource.
  * @param core_kernel_classes_Class (optional) A specific class for the new role.
  * @return core_kernel_classes_Resource The newly created role.
  */
 public function addRole($label, $includedRoles = null, core_kernel_classes_Class $class = null)
 {
     return $this->generisUserService->addRole($label, $includedRoles, $class);
 }