diff --git a/tests/integration/Cron/Workers/InactiveSubscribersTest.php b/tests/integration/Cron/Workers/InactiveSubscribersTest.php index c4387d6bef..1753109689 100644 --- a/tests/integration/Cron/Workers/InactiveSubscribersTest.php +++ b/tests/integration/Cron/Workers/InactiveSubscribersTest.php @@ -82,12 +82,31 @@ class InactiveSubscribersTest extends \MailPoetTest { ], $this); $worker = new InactiveSubscribers($controller_mock, $this->settings); - $worker->processTaskStrategy(ScheduledTask::createOrUpdate([])); + $worker->processTaskStrategy(ScheduledTask::createOrUpdate( + ['meta' => ['max_subscriber_id' => 2001 /* 3 iterations of BATCH_SIZE in markInactiveSubscribers */]] + )); expect($controller_mock->markInactiveSubscribers(5, 1000))->equals('ok'); expect($controller_mock->markActiveSubscribers(5, 1000))->equals('ok'); } + function testItCanStopDeactivationIfMarkInactiveSubscribersReturnsFalse() { + $this->settings->set('deactivate_subscriber_after_inactive_days', 5); + $controller_mock = Stub::make(InactiveSubscribersController::class, [ + 'markInactiveSubscribers' => Stub\Expected::once(false), + 'markActiveSubscribers' => Stub\Expected::once(1), + 'reactivateInactiveSubscribers' => Stub\Expected::never(), + ], $this); + + $task = ScheduledTask::createOrUpdate([]); + + $worker = new InactiveSubscribers($controller_mock, $this->settings); + $worker->processTaskStrategy($task); + + $meta = $task->getMeta(); + expect(isset($meta['last_subscriber_id']))->equals(false); + } + function testThrowsAnExceptionWhenTimeIsOut() { $this->settings->set('deactivate_subscriber_after_inactive_days', 5); $controller_mock = Stub::make(InactiveSubscribersController::class, [ diff --git a/tests/integration/Subscribers/InactiveSubscribersControllerTest.php b/tests/integration/Subscribers/InactiveSubscribersControllerTest.php index 5d143be08a..4e58284721 100644 --- a/tests/integration/Subscribers/InactiveSubscribersControllerTest.php +++ b/tests/integration/Subscribers/InactiveSubscribersControllerTest.php @@ -67,14 +67,14 @@ class InactiveSubscribersControllerTest extends \MailPoetTest { $this->addSubcriberToTask($subscriber2, $task); $batch_size = 1; - $result = $this->controller->markInactiveSubscribers(self::INACTIVITY_DAYS_THRESHOLD, $batch_size); + $result = $this->controller->markInactiveSubscribers(self::INACTIVITY_DAYS_THRESHOLD, $batch_size, $subscriber1->id); expect($result)->equals(1); $subscriber1 = Subscriber::findOne($subscriber1->id); $subscriber2 = Subscriber::findOne($subscriber2->id); expect($subscriber1->status === Subscriber::STATUS_INACTIVE || $subscriber2->status === Subscriber::STATUS_INACTIVE)->true(); expect($subscriber1->status === Subscriber::STATUS_SUBSCRIBED || $subscriber2->status === Subscriber::STATUS_SUBSCRIBED)->true(); - $result = $this->controller->markInactiveSubscribers(self::INACTIVITY_DAYS_THRESHOLD, $batch_size); + $result = $this->controller->markInactiveSubscribers(self::INACTIVITY_DAYS_THRESHOLD, $batch_size, $subscriber2->id); expect($result)->equals(1); $subscriber1 = Subscriber::findOne($subscriber1->id); $subscriber2 = Subscriber::findOne($subscriber2->id);