From c493a43c350d55c2daf176e86287fc8f6c0f585e Mon Sep 17 00:00:00 2001 From: wxa Date: Thu, 26 Dec 2019 17:50:54 +0300 Subject: [PATCH] Fix SendingTask creation from queue [MAILPOET-2488] --- .../API/JSON/v1/NewslettersTest.php | 8 +++- .../Cron/Workers/SchedulerTest.php | 24 +++++++--- .../Workers/SendingQueue/SendingQueueTest.php | 48 ++++++++++++++----- .../SendingQueue/Tasks/NewsletterTest.php | 8 +++- 4 files changed, 66 insertions(+), 22 deletions(-) diff --git a/tests/integration/API/JSON/v1/NewslettersTest.php b/tests/integration/API/JSON/v1/NewslettersTest.php index 03416010f6..38b02deeda 100644 --- a/tests/integration/API/JSON/v1/NewslettersTest.php +++ b/tests/integration/API/JSON/v1/NewslettersTest.php @@ -391,8 +391,12 @@ class NewslettersTest extends \MailPoetTest { ], ]; $newsletter = $this->endpoint->save($newsletter_data); - $sending_queue_1 = SendingTask::createFromQueue(SendingQueue::findOne($sending_queue_1->id)); - $sending_queue_2 = SendingTask::createFromQueue(SendingQueue::findOne($sending_queue_2->id)); + /** @var SendingQueue $sending_queue_1 */ + $sending_queue_1 = SendingQueue::findOne($sending_queue_1->id); + $sending_queue_1 = SendingTask::createFromQueue($sending_queue_1); + /** @var SendingQueue $sending_queue_2 */ + $sending_queue_2 = SendingQueue::findOne($sending_queue_2->id); + $sending_queue_2 = SendingTask::createFromQueue($sending_queue_2); expect($sending_queue_1->scheduled_at)->notEquals($current_time); expect($sending_queue_1->scheduled_at)->equals( Scheduler::getNextRunDate($newsletter->data['schedule']) diff --git a/tests/integration/Cron/Workers/SchedulerTest.php b/tests/integration/Cron/Workers/SchedulerTest.php index 36e40c3165..c707e32786 100644 --- a/tests/integration/Cron/Workers/SchedulerTest.php +++ b/tests/integration/Cron/Workers/SchedulerTest.php @@ -112,7 +112,9 @@ class SchedulerTest extends \MailPoetTest { expect($queue->scheduled_at)->null(); $newsletter->schedule = '0 5 * * *'; // set it to daily at 5 $scheduler->deleteQueueOrUpdateNextRunDate($queue, $newsletter); - $queue = SendingTask::createFromQueue(SendingQueue::findOne($queue->id)); + /** @var SendingQueue $queue */ + $queue = SendingQueue::findOne($queue->id); + $queue = SendingTask::createFromQueue($queue); expect($queue->scheduled_at)->notNull(); } @@ -259,7 +261,9 @@ class SchedulerTest extends \MailPoetTest { ], $this); expect($queue->status)->notNull(); expect($scheduler->processWelcomeNewsletter($newsletter, $queue))->true(); - $updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($queue->id)); + /** @var SendingQueue $updated_queue */ + $updated_queue = SendingQueue::findOne($queue->id); + $updated_queue = SendingTask::createFromQueue($updated_queue); expect($updated_queue->status)->null(); } @@ -276,7 +280,9 @@ class SchedulerTest extends \MailPoetTest { expect($queue->status)->notNull(); expect($scheduler->processWelcomeNewsletter($newsletter, $queue))->true(); // update queue's status to null - $updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($queue->id)); + /** @var SendingQueue $updated_queue */ + $updated_queue = SendingQueue::findOne($queue->id); + $updated_queue = SendingTask::createFromQueue($updated_queue); expect($updated_queue->status)->null(); } @@ -332,7 +338,9 @@ class SchedulerTest extends \MailPoetTest { $result = $scheduler->verifyMailpoetSubscriber($subscriber->id, $newsletter, $queue); expect($result)->false(); // update the time queue is scheduled to run at - $updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($queue->id)); + /** @var SendingQueue $updated_queue */ + $updated_queue = SendingQueue::findOne($queue->id); + $updated_queue = SendingTask::createFromQueue($updated_queue); expect(Carbon::parse($updated_queue->scheduled_at))->equals( Carbon::createFromTimestamp(WPFunctions::get()->currentTime('timestamp')) ->addMinutes(ScheduledTask::BASIC_RESCHEDULE_TIMEOUT) @@ -405,7 +413,9 @@ class SchedulerTest extends \MailPoetTest { // return true expect($scheduler->processScheduledStandardNewsletter($newsletter, $queue))->true(); // update queue's list of subscribers to process - $updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($queue->id)); + /** @var SendingQueue $updated_queue */ + $updated_queue = SendingQueue::findOne($queue->id); + $updated_queue = SendingTask::createFromQueue($updated_queue); $updated_queue_subscribers = $updated_queue->getSubscribers(ScheduledTaskSubscriber::STATUS_UNPROCESSED); expect($updated_queue_subscribers)->equals([$subscriber->id]); // set queue's status to null @@ -470,7 +480,9 @@ class SchedulerTest extends \MailPoetTest { expect($notification_history)->notEmpty(); // update queue with a list of subscribers to process and change newsletter id // to that of the notification history - $updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($queue->id)); + /** @var SendingQueue $updated_queue */ + $updated_queue = SendingQueue::findOne($queue->id); + $updated_queue = SendingTask::createFromQueue($updated_queue); $updated_queue_subscribers = $updated_queue->getSubscribers(ScheduledTaskSubscriber::STATUS_UNPROCESSED); expect($updated_queue_subscribers)->equals([$subscriber->id]); expect($updated_queue->newsletter_id)->equals($notification_history->id); diff --git a/tests/integration/Cron/Workers/SendingQueue/SendingQueueTest.php b/tests/integration/Cron/Workers/SendingQueue/SendingQueueTest.php index 0c8c63407d..5b49d068a9 100644 --- a/tests/integration/Cron/Workers/SendingQueue/SendingQueueTest.php +++ b/tests/integration/Cron/Workers/SendingQueue/SendingQueueTest.php @@ -357,7 +357,9 @@ class SendingQueueTest extends \MailPoetTest { expect($updated_newsletter->status)->equals(Newsletter::STATUS_SENT); // queue status is set to completed - $updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id)); + /** @var SendingQueue $updated_queue */ + $updated_queue = SendingQueue::findOne($this->queue->id); + $updated_queue = SendingTask::createFromQueue($updated_queue); expect($updated_queue->status)->equals(SendingQueue::STATUS_COMPLETED); // queue subscriber processed/to process count is updated @@ -407,7 +409,9 @@ class SendingQueueTest extends \MailPoetTest { expect($updated_newsletter->status)->equals(Newsletter::STATUS_SENT); // queue status is set to completed - $updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id)); + /** @var SendingQueue $updated_queue */ + $updated_queue = SendingQueue::findOne($this->queue->id); + $updated_queue = SendingTask::createFromQueue($updated_queue); expect($updated_queue->status)->equals(SendingQueue::STATUS_COMPLETED); // queue subscriber processed/to process count is updated @@ -450,7 +454,9 @@ class SendingQueueTest extends \MailPoetTest { $sending_queue_worker->process(); // queue status is set to completed - $updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id)); + /** @var SendingQueue $updated_queue */ + $updated_queue = SendingQueue::findOne($this->queue->id); + $updated_queue = SendingTask::createFromQueue($updated_queue); expect($updated_queue->status)->equals(SendingQueue::STATUS_COMPLETED); // newsletter status is set to sent and sent_at date is populated @@ -529,7 +535,9 @@ class SendingQueueTest extends \MailPoetTest { expect($updated_newsletter->status)->equals(Newsletter::STATUS_SENT); // queue status is set to completed - $updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id)); + /** @var SendingQueue $updated_queue */ + $updated_queue = SendingQueue::findOne($this->queue->id); + $updated_queue = SendingTask::createFromQueue($updated_queue); expect($updated_queue->status)->equals(SendingQueue::STATUS_COMPLETED); // queue subscriber processed/to process count is updated @@ -572,7 +580,9 @@ class SendingQueueTest extends \MailPoetTest { $sending_queue_worker->process(); // queue status is set to completed - $updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id)); + /** @var SendingQueue $updated_queue */ + $updated_queue = SendingQueue::findOne($this->queue->id); + $updated_queue = SendingTask::createFromQueue($updated_queue); expect($updated_queue->getSubscribers(ScheduledTaskSubscriber::STATUS_PROCESSED)) ->equals([]); @@ -601,7 +611,9 @@ class SendingQueueTest extends \MailPoetTest { ); $sending_queue_worker->process(); - $updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($queue->id)); + /** @var SendingQueue $updated_queue */ + $updated_queue = SendingQueue::findOne($queue->id); + $updated_queue = SendingTask::createFromQueue($updated_queue); // queue subscriber processed/to process count is updated expect($updated_queue->getSubscribers(ScheduledTaskSubscriber::STATUS_UNPROCESSED)) ->equals([]); @@ -631,7 +643,9 @@ class SendingQueueTest extends \MailPoetTest { ); $sending_queue_worker->process(); - $updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($queue->id)); + /** @var SendingQueue $updated_queue */ + $updated_queue = SendingQueue::findOne($queue->id); + $updated_queue = SendingTask::createFromQueue($updated_queue); // queue subscriber processed/to process count is updated expect($updated_queue->getSubscribers(ScheduledTaskSubscriber::STATUS_UNPROCESSED)) ->equals([]); @@ -651,7 +665,9 @@ class SendingQueueTest extends \MailPoetTest { // newsletter is sent to existing subscriber $sending_queue_worker->process(); - $updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id)); + /** @var SendingQueue $updated_queue */ + $updated_queue = SendingQueue::findOne($this->queue->id); + $updated_queue = SendingTask::createFromQueue($updated_queue); expect((int)$updated_queue->count_total)->equals(1); // newsletter is not sent to trashed subscriber @@ -661,7 +677,9 @@ class SendingQueueTest extends \MailPoetTest { $subscriber->deleted_at = Carbon::now(); $subscriber->save(); $sending_queue_worker->process(); - $updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id)); + /** @var SendingQueue $updated_queue */ + $updated_queue = SendingQueue::findOne($this->queue->id); + $updated_queue = SendingTask::createFromQueue($updated_queue); expect((int)$updated_queue->count_total)->equals(0); } @@ -677,7 +695,9 @@ class SendingQueueTest extends \MailPoetTest { $subscriber->status = Subscriber::STATUS_UNSUBSCRIBED; $subscriber->save(); $sending_queue_worker->process(); - $updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id)); + /** @var SendingQueue $updated_queue */ + $updated_queue = SendingQueue::findOne($this->queue->id); + $updated_queue = SendingTask::createFromQueue($updated_queue); expect((int)$updated_queue->count_total)->equals(0); } @@ -693,7 +713,9 @@ class SendingQueueTest extends \MailPoetTest { $subscriber_segment->status = Subscriber::STATUS_UNSUBSCRIBED; $subscriber_segment->save(); $sending_queue_worker->process(); - $updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id)); + /** @var SendingQueue $updated_queue */ + $updated_queue = SendingQueue::findOne($this->queue->id); + $updated_queue = SendingTask::createFromQueue($updated_queue); expect((int)$updated_queue->count_total)->equals(0); } @@ -709,7 +731,9 @@ class SendingQueueTest extends \MailPoetTest { $subscriber->status = Subscriber::STATUS_INACTIVE; $subscriber->save(); $sending_queue_worker->process(); - $updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id)); + /** @var SendingQueue $updated_queue */ + $updated_queue = SendingQueue::findOne($this->queue->id); + $updated_queue = SendingTask::createFromQueue($updated_queue); expect((int)$updated_queue->count_total)->equals(0); } diff --git a/tests/integration/Cron/Workers/SendingQueue/Tasks/NewsletterTest.php b/tests/integration/Cron/Workers/SendingQueue/Tasks/NewsletterTest.php index f6060137a5..77fed8fee2 100644 --- a/tests/integration/Cron/Workers/SendingQueue/Tasks/NewsletterTest.php +++ b/tests/integration/Cron/Workers/SendingQueue/Tasks/NewsletterTest.php @@ -159,7 +159,9 @@ class NewsletterTest extends \MailPoetTest { $newsletter_task->preProcessNewsletter($this->newsletter, $this->queue); $link = NewsletterLink::where('newsletter_id', $this->newsletter->id) ->findOne(); - $updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id)); + /** @var SendingQueue $updated_queue */ + $updated_queue = SendingQueue::findOne($this->queue->id); + $updated_queue = SendingTask::createFromQueue($updated_queue); $rendered_newsletter = $updated_queue->getNewsletterRenderedBody(); expect($rendered_newsletter['html']) ->contains('[mailpoet_click_data]-' . $link->hash); @@ -182,7 +184,9 @@ class NewsletterTest extends \MailPoetTest { $link = NewsletterLink::where('newsletter_id', $this->newsletter->id) ->findOne(); expect($link)->false(); - $updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id)); + /** @var SendingQueue $updated_queue */ + $updated_queue = SendingQueue::findOne($this->queue->id); + $updated_queue = SendingTask::createFromQueue($updated_queue); $rendered_newsletter = $updated_queue->getNewsletterRenderedBody(); expect($rendered_newsletter['html']) ->notContains('[mailpoet_click_data]');