From c51a3f208c05b17b326ce784c68b7c5af140708c Mon Sep 17 00:00:00 2001 From: Amine Ben hammou Date: Wed, 19 Sep 2018 16:55:32 +0200 Subject: [PATCH] delete related scheduled_task_subscribers records --- lib/Models/ScheduledTask.php | 5 +++++ tests/unit/Models/ScheduledTaskTest.php | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/lib/Models/ScheduledTask.php b/lib/Models/ScheduledTask.php index 9dbc38558e..90e8792d45 100644 --- a/lib/Models/ScheduledTask.php +++ b/lib/Models/ScheduledTask.php @@ -76,6 +76,11 @@ class ScheduledTask extends Model { return $this; } + function delete() { + ScheduledTaskSubscriber::where('task_id', $this->id)->deleteMany(); + return parent::delete(); + } + static function touchAllByIds(array $ids) { ScheduledTask::rawExecute( 'UPDATE `' . ScheduledTask::$_table . '`' . diff --git a/tests/unit/Models/ScheduledTaskTest.php b/tests/unit/Models/ScheduledTaskTest.php index 15f2355985..4a3f78ed75 100644 --- a/tests/unit/Models/ScheduledTaskTest.php +++ b/tests/unit/Models/ScheduledTaskTest.php @@ -5,6 +5,7 @@ use Carbon\Carbon; use MailPoet\Models\Newsletter; use MailPoet\Models\ScheduledTask; use MailPoet\Models\SendingQueue; +use MailPoet\Models\ScheduledTaskSubscriber; class ScheduledTaskTest extends \MailPoetTest { function _before() { @@ -86,7 +87,30 @@ class ScheduledTaskTest extends \MailPoetTest { expect($task2_found->status)->equals(ScheduledTask::STATUS_PAUSED); } + function testItDeletesRelatedScheduledTaskSubscriber() { + $task_id = $this->task->id; + ScheduledTaskSubscriber::createOrUpdate([ + 'task_id' => $task_id, + 'subscriber_id' => 1 + ]); + ScheduledTaskSubscriber::createOrUpdate([ + 'task_id' => $task_id, + 'subscriber_id' => 2 + ]); + ScheduledTaskSubscriber::createOrUpdate([ + 'task_id' => $task_id, + 'subscriber_id' => 3 + ]); + $count = ScheduledTaskSubscriber::where('task_id', $task_id)->count(); + expect($count)->equals(3); + + $this->task->delete(); + $count = ScheduledTaskSubscriber::where('task_id', $task_id)->count(); + expect($count)->equals(0); + } + function _after() { \ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table); + \ORM::raw_execute('TRUNCATE ' . ScheduledTaskSubscriber::$_table); } }