public function testMakeFormAndSetConfigurationFromForm()
 {
     $form = ZurmoSystemConfigurationFormAdapter::makeFormFromSystemConfiguration();
     $this->assertEquals(AutoresponderOrCampaignBatchSizeConfigUtil::CONFIG_DEFAULT_VALUE, $form->autoresponderOrCampaignBatchSize);
     $this->assertEquals(AutoresponderOrCampaignBatchSizeConfigUtil::getBatchSize(), $form->autoresponderOrCampaignBatchSize);
     $this->assertEquals(OutboundEmailBatchSizeConfigUtil::getBatchSize(), $form->outboundEmailBatchSize);
     $this->assertEquals(ZurmoSystemConfigurationUtil::getBatchSize(), $form->listPageSizeMaxLimit);
     //User is not root so he cant change batch size
     $form->autoresponderOrCampaignBatchSize = 20;
     $form->outboundEmailBatchSize = 30;
     $form->listPageSizeMaxLimit = 10;
     ZurmoSystemConfigurationFormAdapter::setConfigurationFromForm($form);
     $form = ZurmoSystemConfigurationFormAdapter::makeFormFromSystemConfiguration();
     $this->assertEquals(AutoresponderOrCampaignBatchSizeConfigUtil::CONFIG_DEFAULT_VALUE, $form->autoresponderOrCampaignBatchSize);
     $this->assertEquals(OutboundEmailBatchSizeConfigUtil::getBatchSize(), $form->outboundEmailBatchSize);
     $this->assertEquals(ZurmoSystemConfigurationUtil::getBatchSize(), $form->listPageSizeMaxLimit);
     //User is root so he can change batch size
     $super = User::getByUsername('super');
     $super->setIsRootUser();
     Yii::app()->user->userModel = $super;
     $form->autoresponderOrCampaignBatchSize = 20;
     $form->outboundEmailBatchSize = 30;
     $form->listPageSizeMaxLimit = 10;
     ZurmoSystemConfigurationFormAdapter::setConfigurationFromForm($form);
     $form = ZurmoSystemConfigurationFormAdapter::makeFormFromSystemConfiguration();
     $this->assertEquals(20, $form->autoresponderOrCampaignBatchSize);
     $this->assertEquals(30, $form->outboundEmailBatchSize);
     $this->assertEquals(10, $form->listPageSizeMaxLimit);
 }
 /**
  * Given a SystemConfigurationForm, save the system configuration global values.
  */
 public static function setConfigurationFromForm(ZurmoSystemConfigurationForm $form)
 {
     if (Yii::app()->user->userModel->isRootUser) {
         AutoresponderOrCampaignBatchSizeConfigUtil::setBatchSize((int) $form->autoresponderOrCampaignBatchSize);
         OutboundEmailBatchSizeConfigUtil::setBatchSize((int) $form->outboundEmailBatchSize);
         ZurmoSystemConfigurationUtil::setBatchSize((int) $form->listPageSizeMaxLimit);
     }
 }
 protected function resolveBatchSize()
 {
     return OutboundEmailBatchSizeConfigUtil::getBatchSize();
 }
 public function generateAndProcessEmailMessages($count)
 {
     $box = EmailBox::resolveAndGetByName(EmailBox::NOTIFICATIONS_NAME);
     $outboxFolder = EmailFolder::getByBoxAndType($box, EmailFolder::TYPE_OUTBOX);
     $sentFolder = EmailFolder::getByBoxAndType($box, EmailFolder::TYPE_SENT);
     $fileNames = array('testImage.png', 'testZip.zip', 'testPDF.pdf');
     $emailMessageIds = array();
     $files = array();
     for ($i = 0; $i < $count; $i++) {
         $emailMessage = EmailMessageTestHelper::createDraftSystemEmail('My Email Message ' . $i, $this->user);
         foreach ($fileNames as $index => $fileName) {
             $file = ZurmoTestHelper::createFileModel($fileName);
             $files[$index]['name'] = $fileName;
             $files[$index]['type'] = $file->type;
             $files[$index]['size'] = $file->size;
             $files[$index]['contents'] = $file->fileContent->content;
             $emailMessage->files->add($file);
         }
         $emailMessage->folder = $outboxFolder;
         $saved = $emailMessage->save(false);
         $this->assertTrue($saved);
         $emailMessageIds[] = $emailMessage->id;
         $emailMessage->forget();
         unset($emailMessage);
     }
     OutboundEmailBatchSizeConfigUtil::setBatchSize($count + 1);
     Yii::app()->jobQueue->deleteAll();
     ForgetAllCacheUtil::forgetAllCaches();
     $job = new ProcessOutboundEmailJob();
     $startedAt = microtime(true);
     $this->assertTrue($job->run());
     $timeTaken = microtime(true) - $startedAt;
     ForgetAllCacheUtil::forgetAllCaches();
     $emailMessages = EmailMessage::getAll();
     $this->assertEquals($count, count($emailMessages));
     foreach ($emailMessageIds as $i => $emailMessageId) {
         $emailMessage = EmailMessage::getById($emailMessageId);
         $this->assertEquals('My Email Message ' . $i, $emailMessage->subject);
         $this->assertEquals(1, $emailMessage->sendAttempts);
         $this->assertEquals($sentFolder->id, $emailMessage->folder->id);
         $this->assertNotEmpty($emailMessage->files);
         $this->assertCount(count($files), $emailMessage->files);
         foreach ($emailMessage->files as $index => $file) {
             $this->assertEquals($file->name, $emailMessage->files[$index]->name);
             $this->assertEquals($file->type, $emailMessage->files[$index]->type);
             $this->assertEquals($file->size, $emailMessage->files[$index]->size);
             $this->assertEquals($file->fileContent->content, $emailMessage->files[$index]->fileContent->content);
             $this->assertEquals($file->fileContent->id, $emailMessage->files[$index]->fileContent->id);
         }
     }
     return $timeTaken;
 }