/**
  * @param string $title
  * @param string $content
  * @param \Wonderland\Application\Model\Member $author
  * @param string $recipientIdentity
  * @return \Wonderland\Application\Model\Message
  */
 public function createMessage($title, $content, Member $author, $recipientIdentity)
 {
     $recipient = $this->memberManager->getMemberByIdentity($recipientIdentity);
     $message = (new Message())->setTitle($title)->setContent($content)->setAuthor($author)->setRecipient($recipient)->setCreatedAt(new \DateTime());
     $this->repository->create($message);
     return $message;
 }
 /**
  * @param \Wonderland\Application\Model\Member $author
  * @param string                               $recipientIdentity
  * @param string                               $title
  * @param string                               $content
  */
 public function createMessage(Member $author, $recipientIdentity, $title, $content)
 {
     $errors = [];
     if (($recipient = $this->memberManager->getMemberByIdentity($recipientIdentity)) === null) {
         $errors[] = ['message' => $this->translator->translate('messages.creation.recipient_not_found')];
     }
     if (trim($title) === '') {
         $errors[] = ['message' => $this->translator->translate('messages.creation.empty_content')];
     }
     if (trim($content) === '') {
         $errors[] = ['message' => $this->translator->translate('messages.creation.empty_content')];
     }
     if (count($errors) > 0) {
         return $errors;
     }
     $message = (new Message())->setTitle($title)->setContent($content)->setAuthor($author)->setRecipient($recipient)->setCreatedAt(new \DateTime());
     $this->repository->create($message);
     return true;
 }
 public function testCreate()
 {
     $this->repository->create($this->getMessageMock());
     $message = $this->repository->find(1, 4);
     $this->assertInstanceOf('Wonderland\\Application\\Model\\Message', $message);
     $this->assertEquals(4, $message->getId());
     $this->assertEquals('You have a new message !', $message->getTitle());
     $this->assertEquals('Sorry, it was a test', $message->getContent());
     $this->assertInstanceOf('DateTime', $message->getCreatedAt());
     $this->assertNull($message->getOpenedAt());
     $author = $message->getAuthor();
     $this->assertInstanceOf('Wonderland\\Application\\Model\\Member', $author);
     $this->assertEquals(1, $author->getId());
     $this->assertEquals('John Doe', $author->getIdentity());
     $this->assertEquals('avatar.png', $author->getAvatar());
     $recipient = $message->getRecipient();
     $this->assertInstanceOf('Wonderland\\Application\\Model\\Member', $recipient);
     $this->assertEquals(2, $recipient->getId());
     $this->assertEquals('Alexander', $recipient->getIdentity());
     $this->assertEquals('avatar.jpg', $recipient->getAvatar());
 }