Refactor SubscribersFinder to be always injected by container
[MAILPOET-3077]
This commit is contained in:
committed by
Veljko V
parent
b91687cbc1
commit
694d1fae10
@ -22,8 +22,15 @@ class SendingQueue extends APIEndpoint {
|
||||
/** @var SubscribersFeature */
|
||||
private $subscribersFeature;
|
||||
|
||||
public function __construct(SubscribersFeature $subscribersFeature) {
|
||||
/** @var SubscribersFinder */
|
||||
private $subscribersFinder;
|
||||
|
||||
public function __construct(
|
||||
SubscribersFeature $subscribersFeature,
|
||||
SubscribersFinder $subscribersFinder
|
||||
) {
|
||||
$this->subscribersFeature = $subscribersFeature;
|
||||
$this->subscribersFinder = $subscribersFinder;
|
||||
}
|
||||
|
||||
public function add($data = []) {
|
||||
@ -90,8 +97,7 @@ class SendingQueue extends APIEndpoint {
|
||||
$queue->scheduledAt = Scheduler::formatDatetimeString($newsletter->scheduledAt);
|
||||
} else {
|
||||
$segments = $newsletter->segments()->findMany();
|
||||
$finder = new SubscribersFinder();
|
||||
$subscribersCount = $finder->addSubscribersToTaskFromSegments($queue->task(), $segments);
|
||||
$subscribersCount = $this->subscribersFinder->addSubscribersToTaskFromSegments($queue->task(), $segments);
|
||||
if (!$subscribersCount) {
|
||||
return $this->errorResponse([
|
||||
APIError::UNKNOWN => __('There are no subscribers in that list!', 'mailpoet'),
|
||||
|
@ -50,17 +50,22 @@ class SendingQueue {
|
||||
/** @var CronHelper */
|
||||
private $cronHelper;
|
||||
|
||||
/** @var SubscribersFinder */
|
||||
private $subscribersFinder;
|
||||
|
||||
public function __construct(
|
||||
SendingErrorHandler $errorHandler,
|
||||
StatsNotificationsScheduler $statsNotificationsScheduler,
|
||||
LoggerFactory $loggerFactory,
|
||||
NewslettersRepository $newslettersRepository,
|
||||
CronHelper $cronHelper,
|
||||
SubscribersFinder $subscriberFinder,
|
||||
$mailerTask = false,
|
||||
$newsletterTask = false
|
||||
) {
|
||||
$this->errorHandler = $errorHandler;
|
||||
$this->statsNotificationsScheduler = $statsNotificationsScheduler;
|
||||
$this->subscribersFinder = $subscriberFinder;
|
||||
$this->mailerTask = ($mailerTask) ? $mailerTask : new MailerTask();
|
||||
$this->newsletterTask = ($newsletterTask) ? $newsletterTask : new NewsletterTask();
|
||||
$this->mailerMetaInfo = new MetaInfo;
|
||||
@ -116,8 +121,7 @@ class SendingQueue {
|
||||
);
|
||||
if (!empty($newsletterSegmentsIds[0])) {
|
||||
// Check that subscribers are in segments
|
||||
$finder = new SubscribersFinder();
|
||||
$foundSubscribersIds = $finder->findSubscribersInSegments($subscribersToProcessIds, $newsletterSegmentsIds);
|
||||
$foundSubscribersIds = $this->subscribersFinder->findSubscribersInSegments($subscribersToProcessIds, $newsletterSegmentsIds);
|
||||
$foundSubscribers = SubscriberModel::whereIn('id', $subscribersToProcessIds)
|
||||
->whereNull('deleted_at')
|
||||
->findMany();
|
||||
|
@ -180,7 +180,7 @@ class ContainerConfigurator implements IContainerConfigurator {
|
||||
$container->autowire(\MailPoet\Form\Util\FieldNameObfuscator::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\Form\AssetsController::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\Form\DisplayFormInWPContent::class);
|
||||
$container->autowire(\MailPoet\Form\FormsRepository::class);
|
||||
$container->autowire(\MailPoet\Form\FormsRepository::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\Form\Renderer::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\Form\BlocksRenderer::class);
|
||||
$container->autowire(\MailPoet\Form\BlockStylesRenderer::class);
|
||||
@ -252,7 +252,7 @@ class ContainerConfigurator implements IContainerConfigurator {
|
||||
$container->autowire(\MailPoet\Subscribers\Statistics\SubscriberStatisticsRepository::class);
|
||||
// Segments
|
||||
$container->autowire(\MailPoet\Segments\WooCommerce::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\Segments\SubscribersFinder::class);
|
||||
$container->autowire(\MailPoet\Segments\SubscribersFinder::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\Segments\SegmentsRepository::class);
|
||||
$container->autowire(\MailPoet\Segments\SegmentSubscribersRepository::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\Segments\DynamicSegments\FilterHandler::class)->setPublic(true);
|
||||
@ -304,7 +304,7 @@ class ContainerConfigurator implements IContainerConfigurator {
|
||||
$container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Text::class);
|
||||
$container->autowire(\MailPoet\Newsletter\Renderer\Columns\Renderer::class);
|
||||
$container->autowire(\MailPoet\Newsletter\Renderer\Preprocessor::class);
|
||||
$container->autowire(\MailPoet\Newsletter\Renderer\Renderer::class);
|
||||
$container->autowire(\MailPoet\Newsletter\Renderer\Renderer::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\Newsletter\Segment\NewsletterSegmentRepository::class);
|
||||
$container->autowire(\MailPoet\Newsletter\Statistics\NewsletterStatisticsRepository::class);
|
||||
$container->autowire(\MailPoet\Newsletter\Scheduler\WelcomeScheduler::class)->setPublic(true);
|
||||
|
@ -2,7 +2,6 @@
|
||||
|
||||
namespace MailPoet\Segments;
|
||||
|
||||
use MailPoet\DI\ContainerWrapper;
|
||||
use MailPoet\Entities\SegmentEntity;
|
||||
use MailPoet\InvalidStateException;
|
||||
use MailPoet\Models\ScheduledTask;
|
||||
@ -17,11 +16,8 @@ class SubscribersFinder {
|
||||
private $segmentSubscriberRepository;
|
||||
|
||||
public function __construct(
|
||||
SegmentSubscribersRepository $segmentSubscriberRepository = null
|
||||
SegmentSubscribersRepository $segmentSubscriberRepository
|
||||
) {
|
||||
if ($segmentSubscriberRepository === null) {
|
||||
$segmentSubscriberRepository = ContainerWrapper::getInstance()->get(SegmentSubscribersRepository::class);
|
||||
}
|
||||
$this->segmentSubscriberRepository = $segmentSubscriberRepository;
|
||||
}
|
||||
|
||||
|
@ -6,15 +6,14 @@ use Codeception\Util\Fixtures;
|
||||
use Codeception\Util\Stub;
|
||||
use MailPoet\API\JSON\Response as APIResponse;
|
||||
use MailPoet\API\JSON\v1\SendingQueue as SendingQueueAPI;
|
||||
use MailPoet\DI\ContainerWrapper;
|
||||
use MailPoet\Models\Newsletter;
|
||||
use MailPoet\Models\NewsletterOption;
|
||||
use MailPoet\Models\NewsletterOptionField;
|
||||
use MailPoet\Models\ScheduledTask;
|
||||
use MailPoet\Models\SendingQueue as SendingQueueModel;
|
||||
use MailPoet\Segments\SubscribersFinder;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\Settings\SettingsRepository;
|
||||
use MailPoet\Subscribers\SubscribersRepository;
|
||||
use MailPoet\Tasks\Sending;
|
||||
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
|
||||
use MailPoetVendor\Idiorm\ORM;
|
||||
@ -52,7 +51,7 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
$newletterOptions
|
||||
);
|
||||
|
||||
$sendingQueue = new SendingQueueAPI(new SubscribersFeature(ContainerWrapper::getInstance()->get(SettingsController::class), ContainerWrapper::getInstance()->get(SubscribersRepository::class)));
|
||||
$sendingQueue = $this->diContainer->get(SendingQueueAPI::class);
|
||||
$result = $sendingQueue->add(['newsletter_id' => $newsletter->id]);
|
||||
$scheduledTask = ScheduledTask::findOne($result->data['task_id']);
|
||||
expect($scheduledTask->status)->equals(ScheduledTask::STATUS_SCHEDULED);
|
||||
@ -61,9 +60,12 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
}
|
||||
|
||||
public function testItReturnsErrorIfSubscribersLimitReached() {
|
||||
$sendingQueue = new SendingQueueAPI(Stub::make(SubscribersFeature::class, [
|
||||
'check' => true,
|
||||
]));
|
||||
$sendingQueue = new SendingQueueAPI(
|
||||
Stub::make(SubscribersFeature::class, [
|
||||
'check' => true,
|
||||
]),
|
||||
$this->diContainer->get(SubscribersFinder::class)
|
||||
);
|
||||
$res = $sendingQueue->add(['newsletter_id' => $this->newsletter->id]);
|
||||
expect($res->status)->equals(APIResponse::STATUS_FORBIDDEN);
|
||||
$res = $sendingQueue->resume(['newsletter_id' => $this->newsletter->id]);
|
||||
@ -83,7 +85,7 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
Newsletter::TYPE_STANDARD,
|
||||
$newletterOptions
|
||||
);
|
||||
$sendingQueue = new SendingQueueAPI(new SubscribersFeature(ContainerWrapper::getInstance()->get(SettingsController::class), ContainerWrapper::getInstance()->get(SubscribersRepository::class)));
|
||||
$sendingQueue = $this->diContainer->get(SendingQueueAPI::class);
|
||||
|
||||
// add scheduled task
|
||||
$result = $sendingQueue->add(['newsletter_id' => $newsletter->id]);
|
||||
|
@ -6,7 +6,6 @@ use Codeception\Stub;
|
||||
use Codeception\Stub\Expected;
|
||||
use MailPoet\Cron\CronHelper;
|
||||
use MailPoet\Cron\Workers\Scheduler;
|
||||
use MailPoet\DI\ContainerWrapper;
|
||||
use MailPoet\Logging\LoggerFactory;
|
||||
use MailPoet\Models\Newsletter;
|
||||
use MailPoet\Models\NewsletterOption;
|
||||
@ -31,10 +30,14 @@ class SchedulerTest extends \MailPoetTest {
|
||||
/** @var LoggerFactory */
|
||||
private $loggerFactory;
|
||||
|
||||
/** @var SubscribersFinder */
|
||||
private $subscribersFinder;
|
||||
|
||||
public function _before() {
|
||||
parent::_before();
|
||||
$this->loggerFactory = LoggerFactory::getInstance();
|
||||
$this->cronHelper = ContainerWrapper::getInstance()->get(CronHelper::class);
|
||||
$this->cronHelper = $this->diContainer->get(CronHelper::class);
|
||||
$this->subscribersFinder = $this->diContainer->get(SubscribersFinder::class);
|
||||
}
|
||||
|
||||
public function testItThrowsExceptionWhenExecutionLimitIsReached() {
|
||||
@ -414,7 +417,7 @@ class SchedulerTest extends \MailPoetTest {
|
||||
$newsletter = Newsletter::filter('filterWithOptions', Newsletter::TYPE_NOTIFICATION)
|
||||
->findOne($newsletter->id);
|
||||
$queue = $this->_createQueue($newsletter->id);
|
||||
$scheduler = new Scheduler(new SubscribersFinder(), $this->loggerFactory, $this->cronHelper);
|
||||
$scheduler = new Scheduler($this->subscribersFinder, $this->loggerFactory, $this->cronHelper);
|
||||
|
||||
// return true
|
||||
expect($scheduler->processScheduledStandardNewsletter($newsletter, $queue))->true();
|
||||
@ -453,7 +456,7 @@ class SchedulerTest extends \MailPoetTest {
|
||||
$newsletterSegment = $this->_createNewsletterSegment($newsletter->id, $segment->id);
|
||||
|
||||
// delete or reschedule queue when there are no subscribers in segments
|
||||
$scheduler = $this->construct(Scheduler::class, [new SubscribersFinder(), $this->loggerFactory, $this->cronHelper], [
|
||||
$scheduler = $this->construct(Scheduler::class, [$this->subscribersFinder, $this->loggerFactory, $this->cronHelper], [
|
||||
'deleteQueueOrUpdateNextRunDate' => Expected::exactly(1, function() {
|
||||
return false;
|
||||
}),
|
||||
@ -476,7 +479,7 @@ class SchedulerTest extends \MailPoetTest {
|
||||
);
|
||||
$newsletter = Newsletter::filter('filterWithOptions', Newsletter::TYPE_NOTIFICATION)
|
||||
->findOne($newsletter->id);
|
||||
$scheduler = new Scheduler(new SubscribersFinder(), $this->loggerFactory, $this->cronHelper);
|
||||
$scheduler = new Scheduler($this->subscribersFinder, $this->loggerFactory, $this->cronHelper);
|
||||
|
||||
// return true
|
||||
expect($scheduler->processPostNotificationNewsletter($newsletter, $queue))->true();
|
||||
@ -701,7 +704,7 @@ class SchedulerTest extends \MailPoetTest {
|
||||
expect($task->newsletterId)->equals($newsletter->id);
|
||||
|
||||
// task should have its status set to null (i.e., sending)
|
||||
$scheduler = new Scheduler(new SubscribersFinder(), $this->loggerFactory, $this->cronHelper);
|
||||
$scheduler = new Scheduler($this->subscribersFinder, $this->loggerFactory, $this->cronHelper);
|
||||
$scheduler->process();
|
||||
$task = SendingTask::getByNewsletterId($newsletter->id);
|
||||
expect($task->status)->null();
|
||||
|
@ -34,6 +34,7 @@ use MailPoet\Newsletter\NewslettersRepository;
|
||||
use MailPoet\Referrals\ReferralDetector;
|
||||
use MailPoet\Router\Endpoints\Track;
|
||||
use MailPoet\Router\Router;
|
||||
use MailPoet\Segments\SubscribersFinder;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\Settings\SettingsRepository;
|
||||
use MailPoet\Subscribers\LinkTokens;
|
||||
@ -65,6 +66,8 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
private $loggerFactory;
|
||||
/** @var NewslettersRepository */
|
||||
private $newslettersRepository;
|
||||
/** @var SubscribersFinder */
|
||||
private $subscribersFinder;
|
||||
|
||||
public function _before() {
|
||||
parent::_before();
|
||||
@ -116,16 +119,18 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
$this->newsletterLink->url = '[link:subscription_instant_unsubscribe_url]';
|
||||
$this->newsletterLink->hash = 'abcde';
|
||||
$this->newsletterLink->save();
|
||||
$this->subscribersFinder = $this->diContainer->get(SubscribersFinder::class);
|
||||
$this->sendingErrorHandler = new SendingErrorHandler();
|
||||
$this->statsNotificationsWorker = Stub::makeEmpty(StatsNotificationsScheduler::class);
|
||||
$this->loggerFactory = LoggerFactory::getInstance();
|
||||
$this->cronHelper = ContainerWrapper::getInstance()->get(CronHelper::class);
|
||||
$this->cronHelper = $this->diContainer->get(CronHelper::class);
|
||||
$this->sendingQueueWorker = new SendingQueueWorker(
|
||||
$this->sendingErrorHandler,
|
||||
$this->statsNotificationsWorker,
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class, ['findOneById' => new NewsletterEntity()]),
|
||||
$this->cronHelper
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder
|
||||
);
|
||||
$this->newslettersRepository = ContainerWrapper::getInstance()->get(NewslettersRepository::class);
|
||||
}
|
||||
@ -163,7 +168,8 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
$this->statsNotificationsWorker,
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class),
|
||||
$this->cronHelper
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder
|
||||
),
|
||||
[
|
||||
'processQueue' => Expected::never(),
|
||||
@ -171,7 +177,14 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
throw new \Exception();
|
||||
}),
|
||||
], $this);
|
||||
$sendingQueueWorker->__construct($this->sendingErrorHandler, $this->statsNotificationsWorker, $this->loggerFactory, Stub::makeEmpty(NewslettersRepository::class), $this->cronHelper);
|
||||
$sendingQueueWorker->__construct(
|
||||
$this->sendingErrorHandler,
|
||||
$this->statsNotificationsWorker,
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class),
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder
|
||||
);
|
||||
try {
|
||||
$sendingQueueWorker->process();
|
||||
self::fail('Execution limits function was not called.');
|
||||
@ -182,7 +195,14 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
|
||||
public function testItEnforcesExecutionLimitsAfterSendingWhenQueueStatusIsNotSetToComplete() {
|
||||
$sendingQueueWorker = Stub::make(
|
||||
new SendingQueueWorker($this->sendingErrorHandler, $this->statsNotificationsWorker, $this->loggerFactory, Stub::makeEmpty(NewslettersRepository::class), $this->cronHelper),
|
||||
new SendingQueueWorker(
|
||||
$this->sendingErrorHandler,
|
||||
$this->statsNotificationsWorker,
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class),
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder
|
||||
),
|
||||
[
|
||||
'enforceSendingAndExecutionLimits' => Expected::exactly(1),
|
||||
], $this);
|
||||
@ -192,6 +212,7 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class),
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder,
|
||||
Stub::make(
|
||||
new MailerTask(),
|
||||
[
|
||||
@ -220,7 +241,14 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
$queue = $this->queue;
|
||||
$queue->status = SendingQueue::STATUS_COMPLETED;
|
||||
$sendingQueueWorker = Stub::make(
|
||||
new SendingQueueWorker($this->sendingErrorHandler, $this->statsNotificationsWorker, $this->loggerFactory, Stub::makeEmpty(NewslettersRepository::class), $this->cronHelper),
|
||||
new SendingQueueWorker(
|
||||
$this->sendingErrorHandler,
|
||||
$this->statsNotificationsWorker,
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class),
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder
|
||||
),
|
||||
[
|
||||
'enforceSendingAndExecutionLimits' => Expected::never(),
|
||||
], $this);
|
||||
@ -230,6 +258,7 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class),
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder,
|
||||
Stub::make(
|
||||
new MailerTask(),
|
||||
[
|
||||
@ -253,7 +282,14 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
|
||||
public function testItEnforcesExecutionLimitsAfterQueueProcessing() {
|
||||
$sendingQueueWorker = Stub::make(
|
||||
new SendingQueueWorker($this->sendingErrorHandler, $this->statsNotificationsWorker, $this->loggerFactory, Stub::makeEmpty(NewslettersRepository::class), $this->cronHelper),
|
||||
new SendingQueueWorker(
|
||||
$this->sendingErrorHandler,
|
||||
$this->statsNotificationsWorker,
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class),
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder
|
||||
),
|
||||
[
|
||||
'processQueue' => function() {
|
||||
// this function returns a queue object
|
||||
@ -261,7 +297,14 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
},
|
||||
'enforceSendingAndExecutionLimits' => Expected::exactly(2),
|
||||
], $this);
|
||||
$sendingQueueWorker->__construct($this->sendingErrorHandler, $this->statsNotificationsWorker, $this->loggerFactory, Stub::makeEmpty(NewslettersRepository::class), $this->cronHelper);
|
||||
$sendingQueueWorker->__construct(
|
||||
$this->sendingErrorHandler,
|
||||
$this->statsNotificationsWorker,
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class),
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder
|
||||
);
|
||||
$sendingQueueWorker->process();
|
||||
}
|
||||
|
||||
@ -288,6 +331,7 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class, ['findOneById' => new NewsletterEntity()]),
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder,
|
||||
Stub::make(
|
||||
new MailerTask(),
|
||||
[
|
||||
@ -318,6 +362,7 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class, ['findOneById' => new NewsletterEntity()]),
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder,
|
||||
Stub::make(
|
||||
new MailerTask(),
|
||||
[
|
||||
@ -346,6 +391,7 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class, ['findOneById' => new NewsletterEntity()]),
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder,
|
||||
Stub::make(
|
||||
new MailerTask(),
|
||||
[
|
||||
@ -395,6 +441,7 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class, ['findOneById' => new NewsletterEntity()]),
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder,
|
||||
Stub::make(
|
||||
new MailerTask(),
|
||||
[
|
||||
@ -447,6 +494,7 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class, ['findOneById' => new NewsletterEntity()]),
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder,
|
||||
Stub::make(
|
||||
new MailerTask(),
|
||||
[
|
||||
@ -506,6 +554,7 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class),
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder,
|
||||
Stub::makeEmpty(new MailerTask(), [], $this)
|
||||
);
|
||||
$sendingQueueWorker->process();
|
||||
@ -524,6 +573,7 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class, ['findOneById' => new NewsletterEntity()]),
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder,
|
||||
Stub::make(
|
||||
new MailerTask(),
|
||||
[
|
||||
@ -578,6 +628,7 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class),
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder,
|
||||
Stub::make(
|
||||
new MailerTask(),
|
||||
[
|
||||
@ -760,7 +811,8 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
$this->statsNotificationsWorker,
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class),
|
||||
$this->cronHelper
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder
|
||||
));
|
||||
$sendingQueueWorker->__construct(
|
||||
$this->sendingErrorHandler,
|
||||
@ -768,6 +820,7 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class),
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder,
|
||||
Stub::make(
|
||||
new MailerTask(),
|
||||
[
|
||||
@ -805,6 +858,7 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class, ['findOneById' => new NewsletterEntity()]),
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder,
|
||||
Stub::make(
|
||||
new MailerTask(),
|
||||
[
|
||||
@ -833,7 +887,8 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
$this->statsNotificationsWorker,
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class),
|
||||
$this->cronHelper
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder
|
||||
);
|
||||
expect($sendingQueueWorker->batchSize)->equals($customBatchSizeValue);
|
||||
$wp->removeFilter('mailpoet_cron_worker_sending_queue_batch_size', $filter);
|
||||
@ -852,6 +907,7 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class, ['findOneById' => new NewsletterEntity()]),
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder,
|
||||
$this->make(new MailerTask(), [
|
||||
'send' => $this->mailerTaskDummyResponse,
|
||||
])
|
||||
@ -877,6 +933,7 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
$this->loggerFactory,
|
||||
Stub::makeEmpty(NewslettersRepository::class, ['findOneById' => new NewsletterEntity()]),
|
||||
$this->cronHelper,
|
||||
$this->subscribersFinder,
|
||||
$this->make(new MailerTask(), [
|
||||
'send' => $this->mailerTaskDummyResponse,
|
||||
])
|
||||
|
@ -25,6 +25,9 @@ class SubscribersFinderTest extends \MailPoetTest {
|
||||
public $segment2;
|
||||
public $segment1;
|
||||
|
||||
/** @var SubscribersFinder */
|
||||
private $subscribersFinder;
|
||||
|
||||
public function _before() {
|
||||
parent::_before();
|
||||
ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);
|
||||
@ -63,12 +66,12 @@ class SubscribersFinderTest extends \MailPoetTest {
|
||||
SubscriberSegment::resubscribeToAllSegments($this->subscriber2);
|
||||
SubscriberSegment::resubscribeToAllSegments($this->subscriber3);
|
||||
$this->sending = SendingTask::create();
|
||||
$this->subscribersFinder = $this->diContainer->get(SubscribersFinder::class);
|
||||
}
|
||||
|
||||
public function testFindSubscribersInSegmentInSegmentDefaultSegment() {
|
||||
$finder = new SubscribersFinder();
|
||||
$deletedSegmentId = 1000; // non-existent segment
|
||||
$subscribers = $finder->findSubscribersInSegments([$this->subscriber2->id], [$this->segment1->id, $deletedSegmentId]);
|
||||
$subscribers = $this->subscribersFinder->findSubscribersInSegments([$this->subscriber2->id], [$this->segment1->id, $deletedSegmentId]);
|
||||
expect($subscribers)->count(1);
|
||||
expect($subscribers[$this->subscriber2->id])->equals($this->subscriber2->id);
|
||||
}
|
||||
@ -101,8 +104,7 @@ class SubscribersFinderTest extends \MailPoetTest {
|
||||
}
|
||||
|
||||
public function testItAddsSubscribersToTaskFromStaticSegments() {
|
||||
$finder = new SubscribersFinder();
|
||||
$subscribersCount = $finder->addSubscribersToTaskFromSegments(
|
||||
$subscribersCount = $this->subscribersFinder->addSubscribersToTaskFromSegments(
|
||||
$this->sending->task(),
|
||||
[
|
||||
$this->getDummySegment($this->segment1->id, Segment::TYPE_DEFAULT),
|
||||
@ -114,8 +116,7 @@ class SubscribersFinderTest extends \MailPoetTest {
|
||||
}
|
||||
|
||||
public function testItDoesNotAddSubscribersToTaskFromNoSegment() {
|
||||
$finder = new SubscribersFinder();
|
||||
$subscribersCount = $finder->addSubscribersToTaskFromSegments(
|
||||
$subscribersCount = $this->subscribersFinder->addSubscribersToTaskFromSegments(
|
||||
$this->sending->task(),
|
||||
[
|
||||
$this->getDummySegment($this->segment1->id, 'UNKNOWN SEGMENT'),
|
||||
|
Reference in New Issue
Block a user