/**
  * @param array|null $data
  * @return AllowableActions|null
  */
 public function convertAllowableActions(array $data = null)
 {
     if (empty($data)) {
         return null;
     }
     $allowableActions = new AllowableActions();
     $actions = array();
     $extensions = array();
     foreach ($data as $key => $value) {
         try {
             if ((bool) $value === true) {
                 $actions[] = Action::cast($key);
             }
         } catch (InvalidEnumerationValueException $exception) {
             $extensions[$key] = $value;
         }
     }
     $allowableActions->setAllowableActions($actions);
     $allowableActions->setExtensions($this->convertExtension($extensions));
     return $allowableActions;
 }
 public function testConvertAllowableActionsConvertsArrayToAllowableActionsObject()
 {
     $actions = array(Action::cast(Action::CAN_GET_CONTENT_STREAM), Action::cast(Action::CAN_REMOVE_OBJECT_FROM_FOLDER), Action::cast(Action::CAN_MOVE_OBJECT), Action::cast(Action::CAN_DELETE_CONTENT_STREAM), Action::cast(Action::CAN_GET_PROPERTIES), Action::cast(Action::CAN_GET_OBJECT_PARENTS), Action::cast(Action::CAN_SET_CONTENT_STREAM), Action::cast(Action::CAN_ADD_OBJECT_TO_FOLDER), Action::cast(Action::CAN_DELETE_OBJECT), Action::cast(Action::CAN_UPDATE_PROPERTIES));
     $allowableActions = new AllowableActions();
     $allowableActions->setAllowableActions($actions);
     $allowableActions->setExtensions($this->cmisExtensionsDummy);
     $getObjectResponse = $this->getResponseFixtureContentAsArray('Cmis/v1.1/BrowserBinding/getObject-response.log');
     $result = $this->jsonConverter->convertAllowableActions($getObjectResponse[JSONConstants::JSON_OBJECT_ALLOWABLE_ACTIONS]);
     $this->assertEquals($allowableActions, $result);
     return $result;
 }
 /**
  * @depends testSetAllowableActionsAssignsActionsToAttribute
  */
 public function testGetAllowableActionsReturnsArrayWithActions()
 {
     $actions = array(Action::cast(Action::CAN_ADD_OBJECT_TO_FOLDER), Action::cast(Action::CAN_APPLY_ACL));
     $this->allowableActions->setAllowableActions($actions);
     $this->assertSame($actions, $this->allowableActions->getAllowableActions());
 }