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