Refactor SubscribersFinder to be always injected by container

[MAILPOET-3077]
This commit is contained in:
Rostislav Wolny
2020-09-23 13:53:36 +02:00
committed by Veljko V
parent b91687cbc1
commit 694d1fae10
8 changed files with 111 additions and 42 deletions

View File

@ -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'),

View File

@ -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();

View File

@ -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);

View File

@ -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;
}

View File

@ -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]);

View File

@ -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();

View File

@ -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,
])

View File

@ -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'),