/**
  * @test
  */
 public function thatCommentCreatesWithAttachments()
 {
     $author = $this->createAuthor();
     $ticket = $this->createDummyTicket();
     $this->messageReferenceRepository->expects($this->once())->method('getReferenceByMessageId')->with($this->equalTo(self::DUMMY_MESSAGE_ID))->will($this->returnValue($this->messageReference));
     $this->messageReference->expects($this->once())->method('getTicket')->will($this->returnValue($ticket));
     $this->commentFactory->expects($this->once())->method('create')->with($this->equalTo(self::DUMMY_COMMENT_CONTENT), $this->equalTo($ticket), $this->equalTo($author))->will($this->returnValue($this->comment));
     $this->attachmentManager->expects($this->once())->method('createNewAttachment')->with($this->equalTo(self::DUMMY_FILENAME), $this->equalTo(self::DUMMY_FILE_CONTENT), $this->equalTo($this->comment));
     $this->ticketRepository->expects($this->once())->method('store')->with($this->equalTo($ticket));
     $this->messageReferenceService->createCommentForTicket(self::DUMMY_COMMENT_CONTENT, (string) $author, self::DUMMY_MESSAGE_ID, $this->attachments());
     $this->assertCount(1, $ticket->getComments());
     $this->assertEquals($this->comment, $ticket->getComments()->get(0));
 }
 /**
  * @test
  */
 public function thatCommentPostsWithWithAttachments()
 {
     $ticket = $this->_dummyTicket;
     $author = $this->createDiamanteUser();
     $comment = new Comment(self::DUMMY_COMMENT_CONTENT, $ticket, $author, false);
     $this->ticketRepository->expects($this->once())->method('get')->with($this->equalTo(self::DUMMY_TICKET_ID))->will($this->returnValue($ticket));
     $this->commentFactory->expects($this->once())->method('create')->with($this->equalTo(self::DUMMY_COMMENT_CONTENT), $this->equalTo($ticket), $this->equalTo($author))->will($this->returnValue($comment));
     $this->ticketRepository->expects($this->once())->method('store')->with($this->equalTo($ticket));
     $attachmentInputs = $this->attachmentInputs();
     $this->attachmentManager->expects($this->exactly(count($attachmentInputs)))->method('createNewAttachment')->with($this->isType(\PHPUnit_Framework_Constraint_IsType::TYPE_STRING), $this->isType(\PHPUnit_Framework_Constraint_IsType::TYPE_STRING), $this->equalTo($comment));
     $this->authorizationService->expects($this->once())->method('isActionPermitted')->with($this->equalTo('CREATE'), $this->equalTo('Entity:DiamanteDeskBundle:Comment'))->will($this->returnValue(true));
     $command = new CommentCommand();
     $command->content = self::DUMMY_COMMENT_CONTENT;
     $command->ticket = self::DUMMY_TICKET_ID;
     $command->author = $author;
     $command->ticketStatus = Status::IN_PROGRESS;
     $command->attachmentsInput = $attachmentInputs;
     $this->service->postNewCommentForTicket($command);
     $this->assertCount(1, $ticket->getComments());
     $this->assertEquals($comment, $ticket->getComments()->get(0));
 }