/** * @param ConversationInterface $conversation * @return array|MessageInterface[] */ public function getMessages(ConversationInterface $conversation) { $this->getEventManager()->trigger('getMessages.pre', $this, ['conversation' => $conversation]); $messages = $this->objectManager->getRepository($this->options->getMessageEntity())->findBy(['conversation' => $conversation->getId()], ['date' => $this->options->getMessageSortOrder()]); $this->getEventManager()->trigger('getMessages', $this, ['messages' => $messages, 'conversation' => $conversation]); return $messages; }
/** * @covers Eye4web\ZfcUser\Pm\Mapper\DoctrineORM\PmMapper::getMessages */ public function testGetMessages() { $conversation = new Conversation(); $conversation->setId(1); $optionsData = [['conversation' => $conversation->getId()], ['date' => $this->options->getMessageSortOrder()]]; $this->options->expects($this->once())->method('getMessageEntity')->will($this->returnValue('Eye4web\\ZfcUser\\Pm\\Entity\\Message')); $objectRepository = $this->getMock('Doctrine\\Common\\Persistence\\ObjectRepository'); $this->objectManager->expects($this->once())->method('getRepository')->with('Eye4web\\ZfcUser\\Pm\\Entity\\Message')->will($this->returnValue($objectRepository)); $message1 = new Message(); $message2 = new Message(); $objectRepository->expects($this->once())->method('findBy')->with($optionsData[0], $optionsData[1])->will($this->returnValue([$message1, $message2])); $messages = $this->mapper->getMessages($conversation); $this->assertCount(2, $messages); foreach ($messages as $message) { $this->assertInstanceOf('Eye4web\\ZfcUser\\Pm\\Entity\\MessageInterface', $message); } }