Pauses sending if processed subscribers list can't be updated

This commit is contained in:
Vlad
2018-01-08 22:51:11 -05:00
committed by pavel-mailpoet
parent 6c25fab6d6
commit 19c7efc9ef
3 changed files with 49 additions and 4 deletions

View File

@@ -1,6 +1,7 @@
<?php
namespace MailPoet\Test\Cron\Workers\SendingQueue;
use AspectMock\Test as Mock;
use Carbon\Carbon;
use Codeception\Util\Fixtures;
use Codeception\Util\Stub;
@@ -8,6 +9,7 @@ use MailPoet\Config\Populator;
use MailPoet\Cron\Workers\SendingQueue\SendingQueue as SendingQueueWorker;
use MailPoet\Cron\Workers\SendingQueue\Tasks\Mailer as MailerTask;
use MailPoet\Cron\Workers\SendingQueue\Tasks\Newsletter as NewsletterTask;
use MailPoet\Mailer\MailerLog;
use MailPoet\Models\Newsletter;
use MailPoet\Models\NewsletterLink;
use MailPoet\Models\NewsletterPost;
@@ -574,6 +576,43 @@ class SendingQueueTest extends \MailPoetTest {
expect((int)$updated_queue->count_total)->equals(0);
}
function testItPausesSendingWhenProcessedSubscriberListCannotBeUpdated() {
$queue = Mock::double(new \stdClass(), array(
'updateProcessedSubscribers' => false
));
$queue->id = 100;
$sending_queue_worker = Stub::make(new SendingQueueWorker());
$sending_queue_worker->__construct(
$timer = false,
Stub::make(
new MailerTask(),
array(
'send' => true
)
)
);
try {
$sending_queue_worker->sendNewsletters(
$queue,
$prepared_subscribers = array(),
$prepared_newsletters = false,
$prepared_subscribers = false,
$statistics = false
);
$this->fail('Paused sending exception was not thrown.');
} catch(\Exception $e) {
expect($e->getMessage())->equals('Sending has been paused.');
}
$mailer_log = MailerLog::getMailerLog();
expect($mailer_log['status'])->equals(MailerLog::STATUS_PAUSED);
expect($mailer_log['error'])->equals(
array(
'operation' => 'processed_list_update',
'error_message' => 'QUEUE-100-PROCESSED-LIST-UPDATE'
)
);
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Subscriber::$_table);
\ORM::raw_execute('TRUNCATE ' . SubscriberSegment::$_table);
@@ -585,4 +624,4 @@ class SendingQueueTest extends \MailPoetTest {
\ORM::raw_execute('TRUNCATE ' . NewsletterSegment::$_table);
\ORM::raw_execute('TRUNCATE ' . StatisticsNewsletters::$_table);
}
}
}