/**
  * @depends testSetIsDirectSetsIsDirect
  */
 public function testIsDirectReturnsIsDirect()
 {
     $this->ace->setIsDirect(true);
     $this->assertTrue($this->ace->isDirect());
     $this->ace->setIsDirect(false);
     $this->assertFalse($this->ace->isDirect());
 }
 public function testConvertAclConvertsArrayToAclObject()
 {
     $principal = new Principal('anyone');
     $principal->setExtensions($this->cmisExtensionsDummy);
     $ace = new AccessControlEntry($principal, array('cmis:all'));
     $ace->setIsDirect(true);
     $ace->setExtensions($this->cmisExtensionsDummy);
     $acl = new AccessControlList(array($ace));
     $acl->setIsExact(true);
     $acl->setExtensions($this->cmisExtensionsDummy);
     $getObjectResponse = $this->getResponseFixtureContentAsArray('Cmis/v1.1/BrowserBinding/getObject-response.log');
     $result = $this->jsonConverter->convertAcl($getObjectResponse[JSONConstants::JSON_OBJECT_ACL], $getObjectResponse[JSONConstants::JSON_OBJECT_EXACT_ACL]);
     $this->assertEquals($acl, $result);
     return $result;
 }
 /**
  * @param array|null $data
  * @param boolean $isExact
  * @return AccessControlList
  */
 public function convertAcl(array $data = null, $isExact = false)
 {
     if (empty($data)) {
         return null;
     }
     $aces = array();
     if (isset($data[JSONConstants::JSON_ACL_ACES]) && is_array($data[JSONConstants::JSON_ACL_ACES])) {
         foreach ($data[JSONConstants::JSON_ACL_ACES] as $aceData) {
             if (empty($aceData[JSONConstants::JSON_ACE_PRINCIPAL][JSONConstants::JSON_ACE_PRINCIPAL_ID])) {
                 continue;
             }
             $permissions = array();
             if (isset($aceData[JSONConstants::JSON_ACE_PERMISSIONS]) && is_array($aceData[JSONConstants::JSON_ACE_PERMISSIONS])) {
                 foreach ($aceData[JSONConstants::JSON_ACE_PERMISSIONS] as $permissionItem) {
                     if (!empty($permissionItem)) {
                         $permissions[] = $permissionItem;
                     }
                 }
             }
             $principal = new Principal((string) $aceData[JSONConstants::JSON_ACE_PRINCIPAL][JSONConstants::JSON_ACE_PRINCIPAL_ID]);
             $principal->setExtensions($this->convertExtension($aceData[JSONConstants::JSON_ACE_PRINCIPAL], JSONConstants::getAcePrincipalKeys()));
             $ace = new AccessControlEntry($principal, $permissions);
             if (isset($aceData[JSONConstants::JSON_ACE_IS_DIRECT])) {
                 $ace->setIsDirect((bool) $aceData[JSONConstants::JSON_ACE_IS_DIRECT]);
             }
             $ace->setExtensions($this->convertExtension($aceData, JSONConstants::getAceKeys()));
             $aces[] = $ace;
         }
     }
     $acl = new AccessControlList($aces);
     $acl->setIsExact($isExact);
     $acl->setExtensions($this->convertExtension($data, JSONConstants::getAclKeys()));
     return $acl;
 }