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