/** * @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)); }