Use subscriber count reporter in cron for reporting stats

[MAILPOET-5191]
This commit is contained in:
Rostislav Wolny
2023-04-27 09:50:08 +02:00
committed by Veljko V
parent d9bec53efa
commit ab19ef92d5
2 changed files with 17 additions and 17 deletions

View File

@@ -5,15 +5,15 @@ namespace MailPoet\Cron\Workers;
use MailPoet\Config\ServicesChecker; use MailPoet\Config\ServicesChecker;
use MailPoet\Cron\CronWorkerScheduler; use MailPoet\Cron\CronWorkerScheduler;
use MailPoet\Entities\ScheduledTaskEntity; use MailPoet\Entities\ScheduledTaskEntity;
use MailPoet\Services\Bridge; use MailPoet\Services\SubscribersCountReporter;
use MailPoet\WP\Functions as WPFunctions; use MailPoet\WP\Functions as WPFunctions;
use MailPoetVendor\Carbon\Carbon; use MailPoetVendor\Carbon\Carbon;
class SubscribersStatsReport extends SimpleWorker { class SubscribersStatsReport extends SimpleWorker {
const TASK_TYPE = 'subscribers_stats_report'; const TASK_TYPE = 'subscribers_stats_report';
/** @var Bridge */ /** @var SubscribersCountReporter */
private $bridge; private $subscribersCountReporter;
/** @var ServicesChecker */ /** @var ServicesChecker */
private $serviceChecker; private $serviceChecker;
@@ -22,13 +22,13 @@ class SubscribersStatsReport extends SimpleWorker {
private $workerScheduler; private $workerScheduler;
public function __construct( public function __construct(
Bridge $bridge, SubscribersCountReporter $subscribersCountReporter,
ServicesChecker $servicesChecker, ServicesChecker $servicesChecker,
CronWorkerScheduler $workerScheduler, CronWorkerScheduler $workerScheduler,
WPFunctions $wp WPFunctions $wp
) { ) {
parent::__construct($wp); parent::__construct($wp);
$this->bridge = $bridge; $this->subscribersCountReporter = $subscribersCountReporter;
$this->serviceChecker = $servicesChecker; $this->serviceChecker = $servicesChecker;
$this->workerScheduler = $workerScheduler; $this->workerScheduler = $workerScheduler;
} }
@@ -42,7 +42,7 @@ class SubscribersStatsReport extends SimpleWorker {
if ($key === null) { if ($key === null) {
return false; return false;
} }
$result = $this->bridge->updateSubscriberCount($key); $result = $this->subscribersCountReporter->report($key);
// We have a valid key, but request failed // We have a valid key, but request failed
if ($result === false) { if ($result === false) {
$this->workerScheduler->rescheduleProgressively($task); $this->workerScheduler->rescheduleProgressively($task);

View File

@@ -5,7 +5,7 @@ namespace MailPoet\Cron\Workers;
use MailPoet\Config\ServicesChecker; use MailPoet\Config\ServicesChecker;
use MailPoet\Cron\CronWorkerScheduler; use MailPoet\Cron\CronWorkerScheduler;
use MailPoet\Entities\ScheduledTaskEntity; use MailPoet\Entities\ScheduledTaskEntity;
use MailPoet\Services\Bridge; use MailPoet\Services\SubscribersCountReporter;
use MailPoet\WP\Functions as WPFunctions; use MailPoet\WP\Functions as WPFunctions;
use MailPoetVendor\Carbon\Carbon; use MailPoetVendor\Carbon\Carbon;
use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\MockObject\MockObject;
@@ -20,8 +20,8 @@ class SubscribersStatsReportTest extends \MailPoetTest {
/** @var SubscribersStatsReport */ /** @var SubscribersStatsReport */
private $worker; private $worker;
/** @var Bridge & MockObject */ /** @var SubscribersCountReporter & MockObject */
private $bridgeMock; private $countReporerMock;
/** @var CronWorkerScheduler & MockObject */ /** @var CronWorkerScheduler & MockObject */
private $schedulerMock; private $schedulerMock;
@@ -34,12 +34,12 @@ class SubscribersStatsReportTest extends \MailPoetTest {
public function _before() { public function _before() {
parent::_before(); parent::_before();
$this->bridgeMock = $this->createMock(Bridge::class); $this->countReporerMock = $this->createMock(SubscribersCountReporter::class);
$this->schedulerMock = $this->createMock(CronWorkerScheduler::class); $this->schedulerMock = $this->createMock(CronWorkerScheduler::class);
$this->servicesCheckerMock = $this->createMock(ServicesChecker::class); $this->servicesCheckerMock = $this->createMock(ServicesChecker::class);
$this->wpMock = $this->createMock(WPFunctions::class); $this->wpMock = $this->createMock(WPFunctions::class);
$this->worker = new SubscribersStatsReport( $this->worker = new SubscribersStatsReport(
$this->bridgeMock, $this->countReporerMock,
$this->servicesCheckerMock, $this->servicesCheckerMock,
$this->schedulerMock, $this->schedulerMock,
$this->wpMock $this->wpMock
@@ -66,8 +66,8 @@ class SubscribersStatsReportTest extends \MailPoetTest {
$this->servicesCheckerMock->expects($this->once()) $this->servicesCheckerMock->expects($this->once())
->method('getValidAccountKey') ->method('getValidAccountKey')
->willReturn('a_valid_key'); ->willReturn('a_valid_key');
$this->bridgeMock->expects($this->once()) $this->countReporerMock->expects($this->once())
->method('updateSubscriberCount') ->method('report')
->willReturn(true); ->willReturn(true);
expect($this->worker->processTaskStrategy($task, $timer))->true(); expect($this->worker->processTaskStrategy($task, $timer))->true();
} }
@@ -78,8 +78,8 @@ class SubscribersStatsReportTest extends \MailPoetTest {
$this->servicesCheckerMock->expects($this->once()) $this->servicesCheckerMock->expects($this->once())
->method('getValidAccountKey') ->method('getValidAccountKey')
->willReturn(null); ->willReturn(null);
$this->bridgeMock->expects($this->never()) $this->countReporerMock->expects($this->never())
->method('updateSubscriberCount'); ->method('report');
expect($this->worker->processTaskStrategy($task, $timer))->false(); expect($this->worker->processTaskStrategy($task, $timer))->false();
} }
@@ -89,8 +89,8 @@ class SubscribersStatsReportTest extends \MailPoetTest {
$this->servicesCheckerMock->expects($this->once()) $this->servicesCheckerMock->expects($this->once())
->method('getValidAccountKey') ->method('getValidAccountKey')
->willReturn('a_valid_key'); ->willReturn('a_valid_key');
$this->bridgeMock->expects($this->once()) $this->countReporerMock->expects($this->once())
->method('updateSubscriberCount') ->method('report')
->willReturn(false); ->willReturn(false);
$this->schedulerMock->expects($this->once()) $this->schedulerMock->expects($this->once())
->method('rescheduleProgressively'); ->method('rescheduleProgressively');