/**
  * @test
  */
 public function thatMessagesAreFetched()
 {
     $zendMailMessage = new ZendMailMessage();
     $zendMailMessage->setHeaders($this->headers());
     $this->converter->expects($this->once())->method('fromRawMessage')->with($this->equalTo(self::DUMMY_RAW_MESSAGE))->will($this->returnValue($zendMailMessage));
     $messages = $this->messageProvider->fetchMessagesToProcess();
     $this->assertNotEmpty($messages);
     $this->assertContainsOnlyInstancesOf('\\Diamante\\EmailProcessingBundle\\Model\\Message', $messages);
 }
 /**
  * Fetch messages that should be processed
  * @return array|Message[]
  * @throws MessageProcessingException
  */
 public function fetchMessagesToProcess()
 {
     $zendMailMessage = $this->converter->fromRawMessage($this->input);
     $headers = $zendMailMessage->getHeaders();
     $uniqueMessageId = uniqid($zendMailMessage->getSubject());
     $messageId = $this->processMessageId($headers);
     $messageSubject = $zendMailMessage->getSubject();
     $messageContent = $this->processContent($zendMailMessage);
     $messageFrom = $this->processFrom($headers);
     $messageTo = $this->processTo($headers);
     $messageReference = $this->processMessageReference($headers);
     $messageAttachments = $this->processAttachments($zendMailMessage);
     $recipients = $this->processRecipients($headers);
     $message = new Message($uniqueMessageId, $messageId, $messageSubject, $messageContent, $messageFrom, $messageTo, $messageReference, $messageAttachments, $recipients);
     return array($message);
 }