public function testGetAclCapabilityMappingKeysReturnsContentOfStaticArray()
 {
     $this->assertSame($this->getStaticAttribute('\\Dkd\\PhpCmis\\Bindings\\Browser\\JSONConstants', 'ACL_CAPABILITY_MAPPING_KEYS'), JSONConstants::getAclCapabilityMappingKeys());
 }
 /**
  * @param array|null $data
  * @return AclCapabilities|null
  */
 public function convertAclCapabilities(array $data = null)
 {
     if (empty($data)) {
         return null;
     }
     $aclCapabilities = new AclCapabilities();
     $aclCapabilities->setSupportedPermissions(SupportedPermissions::cast($data[JSONConstants::JSON_ACLCAP_SUPPORTED_PERMISSIONS]));
     $aclCapabilities->setAclPropagation(AclPropagation::cast($data[JSONConstants::JSON_ACLCAP_ACL_PROPAGATION]));
     if (isset($data[JSONConstants::JSON_ACLCAP_PERMISSIONS]) && is_array($data[JSONConstants::JSON_ACLCAP_PERMISSIONS])) {
         $permissionsData = $data[JSONConstants::JSON_ACLCAP_PERMISSIONS];
         $permissionDefinitionList = array();
         if (is_array($permissionsData)) {
             foreach ($permissionsData as $permissionData) {
                 $permissionDefinition = new PermissionDefinition();
                 $permissionDefinition->setId((string) $permissionData[JSONConstants::JSON_ACLCAP_PERMISSION_PERMISSION]);
                 $permissionDefinition->setDescription((string) $permissionData[JSONConstants::JSON_ACLCAP_PERMISSION_DESCRIPTION]);
                 // handle extensions
                 $permissionDefinition->setExtensions($this->convertExtension($permissionData, JSONConstants::getAclCapabilityPermissionKeys()));
                 $permissionDefinitionList[] = $permissionDefinition;
             }
         }
         $aclCapabilities->setPermissions($permissionDefinitionList);
     }
     if (isset($data[JSONConstants::JSON_ACLCAP_PERMISSION_MAPPING]) && is_array($data[JSONConstants::JSON_ACLCAP_PERMISSION_MAPPING])) {
         $permissionMappingData = $data[JSONConstants::JSON_ACLCAP_PERMISSION_MAPPING];
         $permissionMappingList = array();
         foreach ($permissionMappingData as $permissionMapping) {
             $mapping = new PermissionMapping();
             $key = (string) $permissionMapping[JSONConstants::JSON_ACLCAP_MAPPING_KEY];
             $mapping->setKey($key);
             $permissionList = array();
             if (isset($permissionMapping[JSONConstants::JSON_ACLCAP_MAPPING_PERMISSION]) && is_array($permissionMapping[JSONConstants::JSON_ACLCAP_MAPPING_PERMISSION])) {
                 foreach ($permissionMapping[JSONConstants::JSON_ACLCAP_MAPPING_PERMISSION] as $permission) {
                     if (!empty($permission)) {
                         $permissionList[] = (string) $permission;
                     }
                 }
             }
             $mapping->setPermissions($permissionList);
             $mapping->setExtensions($this->convertExtension($permissionMapping, JSONConstants::getAclCapabilityMappingKeys()));
             $permissionMappingList[$key] = $mapping;
         }
         $aclCapabilities->setPermissionMapping($permissionMappingList);
     }
     // handle extensions
     $aclCapabilities->setExtensions($this->convertExtension($data, JSONConstants::getAclCapabilityKeys()));
     return $aclCapabilities;
 }