/**
  * Retrieve unique message ids that should be processed in current batch.
  * Computing is depending on size of messages
  * @return array
  */
 private function computeMessageIdsToProcess()
 {
     $totalSize = 0;
     $messageIds = array();
     foreach ($this->zendImapStorage->getSize() as $messageId => $size) {
         if ($totalSize + $size > $this->batchSizeInBytes) {
             if (empty($messageIds)) {
                 $messageIds[] = $messageId;
             }
             break;
         }
         $messageIds[] = $this->zendImapStorage->getUniqueId($messageId);
         $totalSize += $size;
     }
     return $messageIds;
 }
Esempio n. 2
0
 public function testUniqueId()
 {
     $mail = new Storage\Imap($this->_params);
     $this->assertTrue($mail->hasUniqueId);
     $this->assertEquals(1, $mail->getNumberByUniqueId($mail->getUniqueId(1)));
     $ids = $mail->getUniqueId();
     foreach ($ids as $num => $id) {
         foreach ($ids as $inner_num => $inner_id) {
             if ($num == $inner_num) {
                 continue;
             }
             if ($id == $inner_id) {
                 $this->fail('not all ids are unique');
             }
         }
         if ($mail->getNumberByUniqueId($id) != $num) {
             $this->fail('reverse lookup failed');
         }
     }
 }