/**
  * @test
  */
 public function thatAttachmentRemovesFromComment()
 {
     $attachment = new Attachment(new File('some/path/file.ext'));
     $this->commentRepository->expects($this->once())->method('get')->with($this->equalTo(self::DUMMY_COMMENT_ID))->will($this->returnValue($this->comment));
     $this->comment->expects($this->once())->method('getAttachment')->with($this->equalTo(1))->will($this->returnValue($attachment));
     $this->comment->expects($this->once())->method('removeAttachment')->with($this->equalTo($attachment));
     $this->attachmentManager->expects($this->once())->method('deleteAttachment')->with($this->equalTo($attachment));
     $this->commentRepository->expects($this->once())->method('store')->with($this->equalTo($this->comment));
     $this->authorizationService->expects($this->once())->method('isActionPermitted')->with($this->equalTo('EDIT'), $this->equalTo($this->comment))->will($this->returnValue(true));
     $removeCommentAttachmentCommand = new RemoveCommentAttachmentCommand();
     $removeCommentAttachmentCommand->attachmentId = 1;
     $removeCommentAttachmentCommand->commentId = self::DUMMY_COMMENT_ID;
     $this->service->removeAttachmentFromComment($removeCommentAttachmentCommand);
 }
 /**
  * Remove Attachment from Comment
  *
  * @ApiDoc(
  *  description="Remove comment attachment",
  *  uri="/comments/{commentId}/attachments/{attachmentId}.{_format}",
  *  method="DELETE",
  *  resource=true,
  *  requirements={
  *      {
  *          "name"="commentId",
  *          "dataType"="integer",
  *          "requirement"="\d+",
  *          "description"="Comment Id"
  *      },
  *      {
  *          "name"="attachmentId",
  *          "dataType"="integer",
  *          "requirement"="\d+",
  *          "description"="Comment attachment Id"
  *      }
  *  },
  *  statusCodes={
  *      204="Returned when successful",
  *      403="Returned when the user is not authorized to delete attachment",
  *      404="Returned when the comment or attachment is not found"
  *  }
  * )
  *
  * @param RemoveCommentAttachmentCommand $command
  * @return void
  * @throws \RuntimeException if Comment does not exists or Comment has no particular attachment
  */
 public function removeAttachmentFromComment(RemoveCommentAttachmentCommand $command)
 {
     parent::removeAttachmentFromComment($command, true);
 }
 /**
  * Retrieves comment author data based on typed ID provided
  *
  * @ApiDoc(
  *  description="Returns person data",
  *  uri="/comment/{id}/author.{_format}",
  *  method="GET",
  *  resource=true,
  *  requirements={
  *       {
  *           "name"="id",
  *           "dataType"="integer",
  *           "requirement"="\d+",
  *           "description"="Author Id"
  *       }
  *   },
  *  statusCodes={
  *      200="Returned when successful",
  *      403="Returned when the user is not authorized to view tickets"
  *  }
  * )
  *
  * @param $id
  * @return array
  */
 public function getAuthorData($id)
 {
     $comment = parent::loadComment($id);
     $details = $this->userService->fetchUserDetails($comment->getAuthor());
     return $details;
 }