Replace Paris models with Doctrine entities in MetaInfoTest
In the process it was necessary to change the signature of the method \MailPoet\Mailer\MetaInfo::getNewsletterMetaInfo() to accept a SubscriberEntity instead of a Subscriber model and also change \MailPoet\Cron\Workers\SendingQueue\SendingQueue::processQueue() as it calls getNewsletterMetaInfo(). Doing this was straightforward, but changing the test class for SendingQueue was a bit more involved. In particular, the test SendingQueueTest::testItEnforcesExecutionLimitsAfterQueueProcessing(). This test is a bit brittle and was creating Subscriber models without saving them to the database with invalid statuses and sources. Switching getNewsletterMetaInfo() to use entities, while SendingQueue::processQueue() still uses models, meant that it was necessary to save the subscribers to the database. Because of this, it was not possible anymore to use invalid statuses and sources, and thus, the test changed a bit. [MAILPOET-4379]
This commit is contained in:
@@ -10,6 +10,7 @@ use MailPoet\Cron\Workers\SendingQueue\Tasks\Newsletter as NewsletterTask;
|
|||||||
use MailPoet\Cron\Workers\StatsNotifications\Scheduler as StatsNotificationsScheduler;
|
use MailPoet\Cron\Workers\StatsNotifications\Scheduler as StatsNotificationsScheduler;
|
||||||
use MailPoet\Entities\NewsletterEntity;
|
use MailPoet\Entities\NewsletterEntity;
|
||||||
use MailPoet\Entities\ScheduledTaskEntity;
|
use MailPoet\Entities\ScheduledTaskEntity;
|
||||||
|
use MailPoet\Entities\SubscriberEntity;
|
||||||
use MailPoet\Logging\LoggerFactory;
|
use MailPoet\Logging\LoggerFactory;
|
||||||
use MailPoet\Mailer\MailerError;
|
use MailPoet\Mailer\MailerError;
|
||||||
use MailPoet\Mailer\MailerLog;
|
use MailPoet\Mailer\MailerLog;
|
||||||
@@ -22,6 +23,7 @@ use MailPoet\Newsletter\NewslettersRepository;
|
|||||||
use MailPoet\Newsletter\Sending\ScheduledTasksRepository;
|
use MailPoet\Newsletter\Sending\ScheduledTasksRepository;
|
||||||
use MailPoet\Segments\SegmentsRepository;
|
use MailPoet\Segments\SegmentsRepository;
|
||||||
use MailPoet\Segments\SubscribersFinder;
|
use MailPoet\Segments\SubscribersFinder;
|
||||||
|
use MailPoet\Subscribers\SubscribersRepository;
|
||||||
use MailPoet\Tasks\Sending as SendingTask;
|
use MailPoet\Tasks\Sending as SendingTask;
|
||||||
use MailPoet\Tasks\Subscribers\BatchIterator;
|
use MailPoet\Tasks\Subscribers\BatchIterator;
|
||||||
use MailPoet\WP\Functions as WPFunctions;
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
@@ -69,6 +71,9 @@ class SendingQueue {
|
|||||||
/** @var ScheduledTasksRepository */
|
/** @var ScheduledTasksRepository */
|
||||||
private $scheduledTasksRepository;
|
private $scheduledTasksRepository;
|
||||||
|
|
||||||
|
/** @var SubscribersRepository */
|
||||||
|
private $subscribersRepository;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
SendingErrorHandler $errorHandler,
|
SendingErrorHandler $errorHandler,
|
||||||
SendingThrottlingHandler $throttlingHandler,
|
SendingThrottlingHandler $throttlingHandler,
|
||||||
@@ -82,6 +87,7 @@ class SendingQueue {
|
|||||||
Links $links,
|
Links $links,
|
||||||
ScheduledTasksRepository $scheduledTasksRepository,
|
ScheduledTasksRepository $scheduledTasksRepository,
|
||||||
MailerTask $mailerTask,
|
MailerTask $mailerTask,
|
||||||
|
SubscribersRepository $subscribersRepository,
|
||||||
$newsletterTask = false
|
$newsletterTask = false
|
||||||
) {
|
) {
|
||||||
$this->errorHandler = $errorHandler;
|
$this->errorHandler = $errorHandler;
|
||||||
@@ -98,6 +104,7 @@ class SendingQueue {
|
|||||||
$this->cronHelper = $cronHelper;
|
$this->cronHelper = $cronHelper;
|
||||||
$this->links = $links;
|
$this->links = $links;
|
||||||
$this->scheduledTasksRepository = $scheduledTasksRepository;
|
$this->scheduledTasksRepository = $scheduledTasksRepository;
|
||||||
|
$this->subscribersRepository = $subscribersRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function process($timer = false) {
|
public function process($timer = false) {
|
||||||
@@ -273,7 +280,12 @@ class SendingQueue {
|
|||||||
$preparedSubscribersIds[] = $subscriber->id;
|
$preparedSubscribersIds[] = $subscriber->id;
|
||||||
// create personalized instant unsubsribe link
|
// create personalized instant unsubsribe link
|
||||||
$unsubscribeUrls[] = $this->links->getUnsubscribeUrl($queue, $subscriber->id);
|
$unsubscribeUrls[] = $this->links->getUnsubscribeUrl($queue, $subscriber->id);
|
||||||
$metas[] = $this->mailerMetaInfo->getNewsletterMetaInfo($newsletter, $subscriber);
|
|
||||||
|
$subscriberEntity = $this->subscribersRepository->findOneById($subscriber->id);
|
||||||
|
if ($subscriberEntity instanceof SubscriberEntity) {
|
||||||
|
$metas[] = $this->mailerMetaInfo->getNewsletterMetaInfo($newsletter, $subscriberEntity);
|
||||||
|
}
|
||||||
|
|
||||||
// keep track of values for statistics purposes
|
// keep track of values for statistics purposes
|
||||||
$statistics[] = [
|
$statistics[] = [
|
||||||
'newsletter_id' => $newsletter->id,
|
'newsletter_id' => $newsletter->id,
|
||||||
|
@@ -4,7 +4,6 @@ namespace MailPoet\Mailer;
|
|||||||
|
|
||||||
use MailPoet\Entities\SubscriberEntity;
|
use MailPoet\Entities\SubscriberEntity;
|
||||||
use MailPoet\Models\Newsletter;
|
use MailPoet\Models\Newsletter;
|
||||||
use MailPoet\Models\Subscriber;
|
|
||||||
|
|
||||||
class MetaInfo {
|
class MetaInfo {
|
||||||
public function getSendingTestMetaInfo() {
|
public function getSendingTestMetaInfo() {
|
||||||
@@ -35,7 +34,7 @@ class MetaInfo {
|
|||||||
return $this->makeMetaInfo('new_subscriber_notification', 'unknown', 'administrator');
|
return $this->makeMetaInfo('new_subscriber_notification', 'unknown', 'administrator');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getNewsletterMetaInfo($newsletter, Subscriber $subscriber) {
|
public function getNewsletterMetaInfo($newsletter, SubscriberEntity $subscriber) {
|
||||||
$type = $newsletter->type ?? 'unknown';
|
$type = $newsletter->type ?? 'unknown';
|
||||||
switch ($newsletter->type) {
|
switch ($newsletter->type) {
|
||||||
case Newsletter::TYPE_AUTOMATIC:
|
case Newsletter::TYPE_AUTOMATIC:
|
||||||
@@ -54,7 +53,7 @@ class MetaInfo {
|
|||||||
$type = 'post_notification';
|
$type = 'post_notification';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return $this->makeMetaInfo($type, $subscriber->status, $subscriber->source);
|
return $this->makeMetaInfo($type, $subscriber->getStatus(), $subscriber->getSource());
|
||||||
}
|
}
|
||||||
|
|
||||||
private function makeMetaInfo($emailType, $subscriberStatus, $subscriberSource) {
|
private function makeMetaInfo($emailType, $subscriberStatus, $subscriberSource) {
|
||||||
|
@@ -55,6 +55,7 @@ use MailPoet\Subscribers\LinkTokens;
|
|||||||
use MailPoet\Subscribers\SubscribersRepository;
|
use MailPoet\Subscribers\SubscribersRepository;
|
||||||
use MailPoet\Subscription\SubscriptionUrlFactory;
|
use MailPoet\Subscription\SubscriptionUrlFactory;
|
||||||
use MailPoet\Tasks\Sending as SendingTask;
|
use MailPoet\Tasks\Sending as SendingTask;
|
||||||
|
use MailPoet\Test\DataFactories\Subscriber as SubscriberFactory;
|
||||||
use MailPoet\WP\Functions as WPFunctions;
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
use MailPoetVendor\Carbon\Carbon;
|
use MailPoetVendor\Carbon\Carbon;
|
||||||
|
|
||||||
@@ -94,6 +95,8 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
private $tasksLinks;
|
private $tasksLinks;
|
||||||
/** @var ScheduledTasksRepository */
|
/** @var ScheduledTasksRepository */
|
||||||
private $scheduledTasksRepository;
|
private $scheduledTasksRepository;
|
||||||
|
/** @var SubscribersRepository */
|
||||||
|
private $subscribersRepository;
|
||||||
|
|
||||||
public function _before() {
|
public function _before() {
|
||||||
parent::_before();
|
parent::_before();
|
||||||
@@ -151,6 +154,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$this->segmentsRepository = $this->diContainer->get(SegmentsRepository::class);
|
$this->segmentsRepository = $this->diContainer->get(SegmentsRepository::class);
|
||||||
$this->tasksLinks = $this->diContainer->get(TasksLinks::class);
|
$this->tasksLinks = $this->diContainer->get(TasksLinks::class);
|
||||||
$this->scheduledTasksRepository = $this->diContainer->get(ScheduledTasksRepository::class);
|
$this->scheduledTasksRepository = $this->diContainer->get(ScheduledTasksRepository::class);
|
||||||
|
$this->subscribersRepository = $this->diContainer->get(SubscribersRepository::class);
|
||||||
$this->sendingQueueWorker = $this->getSendingQueueWorker($this->makeEmpty(NewslettersRepository::class, ['findOneById' => new NewsletterEntity()]));
|
$this->sendingQueueWorker = $this->getSendingQueueWorker($this->makeEmpty(NewslettersRepository::class, ['findOneById' => new NewsletterEntity()]));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -205,7 +209,8 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$this->wp,
|
$this->wp,
|
||||||
$this->tasksLinks,
|
$this->tasksLinks,
|
||||||
$this->scheduledTasksRepository,
|
$this->scheduledTasksRepository,
|
||||||
$this->diContainer->get(MailerTask::class)
|
$this->diContainer->get(MailerTask::class),
|
||||||
|
$this->subscribersRepository
|
||||||
);
|
);
|
||||||
try {
|
try {
|
||||||
$sendingQueueWorker->process();
|
$sendingQueueWorker->process();
|
||||||
@@ -238,7 +243,8 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
[
|
[
|
||||||
'sendBulk' => $this->mailerTaskDummyResponse,
|
'sendBulk' => $this->mailerTaskDummyResponse,
|
||||||
]
|
]
|
||||||
)
|
),
|
||||||
|
$this->subscribersRepository
|
||||||
);
|
);
|
||||||
$sendingQueueWorker->sendNewsletters(
|
$sendingQueueWorker->sendNewsletters(
|
||||||
$this->queue,
|
$this->queue,
|
||||||
@@ -282,7 +288,8 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
[
|
[
|
||||||
'sendBulk' => $this->mailerTaskDummyResponse,
|
'sendBulk' => $this->mailerTaskDummyResponse,
|
||||||
]
|
]
|
||||||
)
|
),
|
||||||
|
$this->subscribersRepository
|
||||||
);
|
);
|
||||||
$sendingQueueWorker->sendNewsletters(
|
$sendingQueueWorker->sendNewsletters(
|
||||||
$queue,
|
$queue,
|
||||||
@@ -320,7 +327,8 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$this->wp,
|
$this->wp,
|
||||||
$this->tasksLinks,
|
$this->tasksLinks,
|
||||||
$this->scheduledTasksRepository,
|
$this->scheduledTasksRepository,
|
||||||
$this->diContainer->get(MailerTask::class)
|
$this->diContainer->get(MailerTask::class),
|
||||||
|
$this->subscribersRepository
|
||||||
);
|
);
|
||||||
$sendingQueueWorker->process();
|
$sendingQueueWorker->process();
|
||||||
}
|
}
|
||||||
@@ -438,34 +446,35 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testItSendCorrectDataToSubscribersOneByOne() {
|
public function testItSendCorrectDataToSubscribersOneByOne() {
|
||||||
/**
|
|
||||||
* @var Subscriber[] $subscribers
|
|
||||||
*/
|
|
||||||
$subscribers = [
|
|
||||||
Subscriber::create(),
|
|
||||||
Subscriber::create(),
|
|
||||||
];
|
|
||||||
$subscribers[0]->set('id', '1');
|
|
||||||
$subscribers[1]->set('id', '2');
|
|
||||||
$subscribers[0]->set('status', 'status-1');
|
|
||||||
$subscribers[1]->set('status', 'status-2');
|
|
||||||
$subscribers[0]->set('source', 'source-1');
|
|
||||||
$subscribers[1]->set('source', 'source-2');
|
|
||||||
$subscribers[0]->set('email', '1@localhost.com');
|
|
||||||
$subscribers[1]->set('email', '2@localhost.com');
|
|
||||||
$subscribersRepository = ContainerWrapper::getInstance()->get(SubscribersRepository::class);
|
$subscribersRepository = ContainerWrapper::getInstance()->get(SubscribersRepository::class);
|
||||||
/**
|
|
||||||
* @var SubscriberEntity $entity
|
|
||||||
*/
|
|
||||||
$entity = $subscribersRepository->findOneById(1);
|
|
||||||
$entity->setEmail('1@localhost.com');
|
|
||||||
$subscribersRepository->persist($entity);
|
|
||||||
$entity = $subscribersRepository->findOneById(2);
|
|
||||||
$entity->setEmail('2@localhost.com');
|
|
||||||
$subscribersRepository->persist($entity);
|
|
||||||
$subscriberIds = array_map(function(Subscriber $item): int { return (int)$item->id();
|
|
||||||
|
|
||||||
}, $subscribers);
|
$subscriber1 = $subscribersRepository->findOneById(1);
|
||||||
|
$subscriber1->setStatus(SubscriberEntity::STATUS_SUBSCRIBED);
|
||||||
|
$subscriber1->setSource('form');
|
||||||
|
$subscriber1->setEmail('1@localhost.com');
|
||||||
|
$subscribersRepository->persist($subscriber1);
|
||||||
|
|
||||||
|
|
||||||
|
$subscriber2 = $subscribersRepository->findOneById(2);
|
||||||
|
$subscriber2->setStatus(SubscriberEntity::STATUS_SUBSCRIBED);
|
||||||
|
$subscriber2->setSource('form');
|
||||||
|
$subscriber2->setEmail('2@localhost.com');
|
||||||
|
$subscribersRepository->persist($subscriber2);
|
||||||
|
|
||||||
|
$subscribersRepository->flush();
|
||||||
|
|
||||||
|
$subscribers = [
|
||||||
|
$subscriber1,
|
||||||
|
$subscriber2,
|
||||||
|
];
|
||||||
|
|
||||||
|
$subscriberIds = array_map(
|
||||||
|
function(SubscriberEntity $item): int {
|
||||||
|
return (int)$item->getId();
|
||||||
|
},
|
||||||
|
$subscribers
|
||||||
|
);
|
||||||
|
|
||||||
$queue = SendingTask::create();
|
$queue = SendingTask::create();
|
||||||
$queue->newsletterRenderedBody = ['html' => '<p>Hello [subscriber:email]</p>', 'text' => 'Hello [subscriber:email]'];
|
$queue->newsletterRenderedBody = ['html' => '<p>Hello [subscriber:email]</p>', 'text' => 'Hello [subscriber:email]'];
|
||||||
$queue->newsletterRenderedSubject = 'News for [subscriber:email]';
|
$queue->newsletterRenderedSubject = 'News for [subscriber:email]';
|
||||||
@@ -495,8 +504,8 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
expect($newsletter['body']['html'])->equals('<p>Hello ' . $subscriberEmail . '</p>');
|
expect($newsletter['body']['html'])->equals('<p>Hello ' . $subscriberEmail . '</p>');
|
||||||
expect($newsletter['body']['text'])->equals('Hello ' . $subscriberEmail);
|
expect($newsletter['body']['text'])->equals('Hello ' . $subscriberEmail);
|
||||||
expect($extraParams['meta']['email_type'])->equals('newsletter');
|
expect($extraParams['meta']['email_type'])->equals('newsletter');
|
||||||
expect($extraParams['meta']['subscriber_status'])->equals('status-' . $subscriberId);
|
expect($extraParams['meta']['subscriber_status'])->equals(SubscriberEntity::STATUS_SUBSCRIBED);
|
||||||
expect($extraParams['meta']['subscriber_source'])->equals('source-' . $subscriberId);
|
expect($extraParams['meta']['subscriber_source'])->equals('form');
|
||||||
expect($extraParams['unsubscribe_url'])->equals($unsubscribeUrl);
|
expect($extraParams['unsubscribe_url'])->equals($unsubscribeUrl);
|
||||||
|
|
||||||
return $this->mailerTaskDummyResponse;
|
return $this->mailerTaskDummyResponse;
|
||||||
@@ -505,7 +514,12 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
$sendingQueueWorker->processQueue($queue, $newsletter, $subscribers, $timer);
|
$subscribersModels = [
|
||||||
|
Subscriber::findOne($subscriber1->getId()),
|
||||||
|
Subscriber::findOne($subscriber2->getId())
|
||||||
|
];
|
||||||
|
|
||||||
|
$sendingQueueWorker->processQueue($queue, $newsletter, $subscribersModels, $timer);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItCanProcessSubscribersInBulk() {
|
public function testItCanProcessSubscribersInBulk() {
|
||||||
@@ -642,7 +656,8 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
[
|
[
|
||||||
'sendBulk' => Stub::consecutive(['response' => false, 'error' => $mailerError], $this->mailerTaskDummyResponse),
|
'sendBulk' => Stub::consecutive(['response' => false, 'error' => $mailerError], $this->mailerTaskDummyResponse),
|
||||||
]
|
]
|
||||||
)
|
),
|
||||||
|
$this->subscribersRepository
|
||||||
);
|
);
|
||||||
|
|
||||||
$sendingQueueWorker->sendNewsletters(
|
$sendingQueueWorker->sendNewsletters(
|
||||||
@@ -1044,7 +1059,8 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
[
|
[
|
||||||
'sendBulk' => $this->mailerTaskDummyResponse,
|
'sendBulk' => $this->mailerTaskDummyResponse,
|
||||||
]
|
]
|
||||||
)
|
),
|
||||||
|
$this->subscribersRepository
|
||||||
);
|
);
|
||||||
try {
|
try {
|
||||||
$sendingQueueWorker->sendNewsletters(
|
$sendingQueueWorker->sendNewsletters(
|
||||||
@@ -1268,7 +1284,8 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$this->wp,
|
$this->wp,
|
||||||
$this->tasksLinks,
|
$this->tasksLinks,
|
||||||
$this->scheduledTasksRepository,
|
$this->scheduledTasksRepository,
|
||||||
$mailerMock ?? $this->diContainer->get(MailerTask::class)
|
$mailerMock ?? $this->diContainer->get(MailerTask::class),
|
||||||
|
$this->subscribersRepository
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -5,16 +5,22 @@ namespace MailPoet\Test\Mailer;
|
|||||||
use MailPoet\Entities\NewsletterEntity;
|
use MailPoet\Entities\NewsletterEntity;
|
||||||
use MailPoet\Entities\SubscriberEntity;
|
use MailPoet\Entities\SubscriberEntity;
|
||||||
use MailPoet\Mailer\MetaInfo;
|
use MailPoet\Mailer\MetaInfo;
|
||||||
use MailPoet\Models\Subscriber;
|
|
||||||
use MailPoet\Test\DataFactories\Subscriber as SubscriberFactory;
|
use MailPoet\Test\DataFactories\Subscriber as SubscriberFactory;
|
||||||
|
|
||||||
class MetaInfoTest extends \MailPoetTest {
|
class MetaInfoTest extends \MailPoetTest {
|
||||||
/** @var MetaInfo */
|
/** @var MetaInfo */
|
||||||
private $meta;
|
private $meta;
|
||||||
|
|
||||||
|
/** @var SubscriberEntity */
|
||||||
|
private $subscriber;
|
||||||
|
|
||||||
public function _before() {
|
public function _before() {
|
||||||
parent::_before();
|
parent::_before();
|
||||||
$this->meta = new MetaInfo;
|
$this->meta = new MetaInfo;
|
||||||
|
$this->subscriber = (new SubscriberFactory())
|
||||||
|
->withStatus(SubscriberEntity::STATUS_SUBSCRIBED)
|
||||||
|
->withSource('form')
|
||||||
|
->create();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItGetsMetaInfoForSendingTest() {
|
public function testItGetsMetaInfoForSendingTest() {
|
||||||
@@ -60,8 +66,11 @@ class MetaInfoTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testItGetsMetaInfoForConfirmationEmails() {
|
public function testItGetsMetaInfoForConfirmationEmails() {
|
||||||
$subscriberFactory = new SubscriberFactory();
|
$subscriber = (new SubscriberFactory())
|
||||||
$subscriber = $subscriberFactory->withStatus('unconfirmed')->withSource('form')->create();
|
->withStatus(SubscriberEntity::STATUS_UNCONFIRMED)
|
||||||
|
->withSource('form')
|
||||||
|
->withEmail('test@metainfo.com')
|
||||||
|
->create();
|
||||||
|
|
||||||
expect($this->meta->getConfirmationMetaInfo($subscriber))->equals([
|
expect($this->meta->getConfirmationMetaInfo($subscriber))->equals([
|
||||||
'email_type' => 'confirmation',
|
'email_type' => 'confirmation',
|
||||||
@@ -79,14 +88,14 @@ class MetaInfoTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testItGetsMetaInfoForStandardNewsletter() {
|
public function testItGetsMetaInfoForStandardNewsletter() {
|
||||||
$subscriber = Subscriber::create();
|
$subscriber = (new SubscriberFactory())
|
||||||
$subscriber->hydrate([
|
->withStatus(SubscriberEntity::STATUS_SUBSCRIBED)
|
||||||
'status' => 'subscribed',
|
->withSource('form')
|
||||||
'source' => 'form',
|
->create();
|
||||||
]);
|
|
||||||
$newsletter = (object)[
|
$newsletter = (object)[
|
||||||
'type' => NewsletterEntity::TYPE_STANDARD,
|
'type' => NewsletterEntity::TYPE_STANDARD,
|
||||||
];
|
];
|
||||||
|
|
||||||
expect($this->meta->getNewsletterMetaInfo($newsletter, $subscriber))->equals([
|
expect($this->meta->getNewsletterMetaInfo($newsletter, $subscriber))->equals([
|
||||||
'email_type' => 'newsletter',
|
'email_type' => 'newsletter',
|
||||||
'subscriber_status' => 'subscribed',
|
'subscriber_status' => 'subscribed',
|
||||||
@@ -95,15 +104,10 @@ class MetaInfoTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testItGetsMetaInfoForWelcomeEmail() {
|
public function testItGetsMetaInfoForWelcomeEmail() {
|
||||||
$subscriber = Subscriber::create();
|
|
||||||
$subscriber->hydrate([
|
|
||||||
'status' => 'subscribed',
|
|
||||||
'source' => 'form',
|
|
||||||
]);
|
|
||||||
$newsletter = (object)[
|
$newsletter = (object)[
|
||||||
'type' => NewsletterEntity::TYPE_WELCOME,
|
'type' => NewsletterEntity::TYPE_WELCOME,
|
||||||
];
|
];
|
||||||
expect($this->meta->getNewsletterMetaInfo($newsletter, $subscriber))->equals([
|
expect($this->meta->getNewsletterMetaInfo($newsletter, $this->subscriber))->equals([
|
||||||
'email_type' => 'welcome',
|
'email_type' => 'welcome',
|
||||||
'subscriber_status' => 'subscribed',
|
'subscriber_status' => 'subscribed',
|
||||||
'subscriber_source' => 'form',
|
'subscriber_source' => 'form',
|
||||||
@@ -111,23 +115,18 @@ class MetaInfoTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testItGetsMetaInfoForPostNotification() {
|
public function testItGetsMetaInfoForPostNotification() {
|
||||||
$subscriber = Subscriber::create();
|
|
||||||
$subscriber->hydrate([
|
|
||||||
'status' => 'subscribed',
|
|
||||||
'source' => 'form',
|
|
||||||
]);
|
|
||||||
$newsletter1 = (object)[
|
$newsletter1 = (object)[
|
||||||
'type' => NewsletterEntity::TYPE_NOTIFICATION,
|
'type' => NewsletterEntity::TYPE_NOTIFICATION,
|
||||||
];
|
];
|
||||||
$newsletter2 = (object)[
|
$newsletter2 = (object)[
|
||||||
'type' => NewsletterEntity::TYPE_NOTIFICATION_HISTORY,
|
'type' => NewsletterEntity::TYPE_NOTIFICATION_HISTORY,
|
||||||
];
|
];
|
||||||
expect($this->meta->getNewsletterMetaInfo($newsletter1, $subscriber))->equals([
|
expect($this->meta->getNewsletterMetaInfo($newsletter1, $this->subscriber))->equals([
|
||||||
'email_type' => 'post_notification',
|
'email_type' => 'post_notification',
|
||||||
'subscriber_status' => 'subscribed',
|
'subscriber_status' => 'subscribed',
|
||||||
'subscriber_source' => 'form',
|
'subscriber_source' => 'form',
|
||||||
]);
|
]);
|
||||||
expect($this->meta->getNewsletterMetaInfo($newsletter2, $subscriber))->equals([
|
expect($this->meta->getNewsletterMetaInfo($newsletter2, $this->subscriber))->equals([
|
||||||
'email_type' => 'post_notification',
|
'email_type' => 'post_notification',
|
||||||
'subscriber_status' => 'subscribed',
|
'subscriber_status' => 'subscribed',
|
||||||
'subscriber_source' => 'form',
|
'subscriber_source' => 'form',
|
||||||
@@ -135,11 +134,6 @@ class MetaInfoTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testItGetsMetaInfoForAutomaticEmails() {
|
public function testItGetsMetaInfoForAutomaticEmails() {
|
||||||
$subscriber = Subscriber::create();
|
|
||||||
$subscriber->hydrate([
|
|
||||||
'status' => 'subscribed',
|
|
||||||
'source' => 'form',
|
|
||||||
]);
|
|
||||||
$newsletter1 = (object)[
|
$newsletter1 = (object)[
|
||||||
'type' => NewsletterEntity::TYPE_AUTOMATIC,
|
'type' => NewsletterEntity::TYPE_AUTOMATIC,
|
||||||
'options' => [
|
'options' => [
|
||||||
@@ -154,12 +148,12 @@ class MetaInfoTest extends \MailPoetTest {
|
|||||||
'event' => 'woocommerce_purchased_in_category',
|
'event' => 'woocommerce_purchased_in_category',
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
expect($this->meta->getNewsletterMetaInfo($newsletter1, $subscriber))->equals([
|
expect($this->meta->getNewsletterMetaInfo($newsletter1, $this->subscriber))->equals([
|
||||||
'email_type' => 'automatic_woocommerce_woocommerce_first_purchase',
|
'email_type' => 'automatic_woocommerce_woocommerce_first_purchase',
|
||||||
'subscriber_status' => 'subscribed',
|
'subscriber_status' => 'subscribed',
|
||||||
'subscriber_source' => 'form',
|
'subscriber_source' => 'form',
|
||||||
]);
|
]);
|
||||||
expect($this->meta->getNewsletterMetaInfo($newsletter2, $subscriber))->equals([
|
expect($this->meta->getNewsletterMetaInfo($newsletter2, $this->subscriber))->equals([
|
||||||
'email_type' => 'automatic_woocommerce_woocommerce_purchased_in_category',
|
'email_type' => 'automatic_woocommerce_woocommerce_purchased_in_category',
|
||||||
'subscriber_status' => 'subscribed',
|
'subscriber_status' => 'subscribed',
|
||||||
'subscriber_source' => 'form',
|
'subscriber_source' => 'form',
|
||||||
@@ -167,23 +161,18 @@ class MetaInfoTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testItGetsMetaInfoForReEngagement() {
|
public function testItGetsMetaInfoForReEngagement() {
|
||||||
$subscriber = Subscriber::create();
|
|
||||||
$subscriber->hydrate([
|
|
||||||
'status' => 'subscribed',
|
|
||||||
'source' => 'form',
|
|
||||||
]);
|
|
||||||
$newsletter1 = (object)[
|
$newsletter1 = (object)[
|
||||||
'type' => Newsletter::TYPE_RE_ENGAGEMENT,
|
'type' => NewsletterEntity::TYPE_RE_ENGAGEMENT,
|
||||||
];
|
];
|
||||||
$newsletter2 = (object)[
|
$newsletter2 = (object)[
|
||||||
'type' => Newsletter::TYPE_RE_ENGAGEMENT,
|
'type' => NewsletterEntity::TYPE_RE_ENGAGEMENT,
|
||||||
];
|
];
|
||||||
expect($this->meta->getNewsletterMetaInfo($newsletter1, $subscriber))->equals([
|
expect($this->meta->getNewsletterMetaInfo($newsletter1, $this->subscriber))->equals([
|
||||||
'email_type' => 're_engagement',
|
'email_type' => 're_engagement',
|
||||||
'subscriber_status' => 'subscribed',
|
'subscriber_status' => 'subscribed',
|
||||||
'subscriber_source' => 'form',
|
'subscriber_source' => 'form',
|
||||||
]);
|
]);
|
||||||
expect($this->meta->getNewsletterMetaInfo($newsletter2, $subscriber))->equals([
|
expect($this->meta->getNewsletterMetaInfo($newsletter2, $this->subscriber))->equals([
|
||||||
'email_type' => 're_engagement',
|
'email_type' => 're_engagement',
|
||||||
'subscriber_status' => 'subscribed',
|
'subscriber_status' => 'subscribed',
|
||||||
'subscriber_source' => 'form',
|
'subscriber_source' => 'form',
|
||||||
@@ -191,16 +180,11 @@ class MetaInfoTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testItGetsMetaInfoForRandomType() {
|
public function testItGetsMetaInfoForRandomType() {
|
||||||
$subscriber = Subscriber::create();
|
|
||||||
$subscriber->hydrate([
|
|
||||||
'status' => 'subscribed',
|
|
||||||
'source' => 'form',
|
|
||||||
]);
|
|
||||||
$newsletter1 = (object)[
|
$newsletter1 = (object)[
|
||||||
'type' => "random",
|
'type' => "random",
|
||||||
];
|
];
|
||||||
|
|
||||||
expect($this->meta->getNewsletterMetaInfo($newsletter1, $subscriber))->equals([
|
expect($this->meta->getNewsletterMetaInfo($newsletter1, $this->subscriber))->equals([
|
||||||
'email_type' => 'random',
|
'email_type' => 'random',
|
||||||
'subscriber_status' => 'subscribed',
|
'subscriber_status' => 'subscribed',
|
||||||
'subscriber_source' => 'form',
|
'subscriber_source' => 'form',
|
||||||
@@ -208,15 +192,10 @@ class MetaInfoTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testItGetsMetaInfoForUnknownType() {
|
public function testItGetsMetaInfoForUnknownType() {
|
||||||
$subscriber = Subscriber::create();
|
|
||||||
$subscriber->hydrate([
|
|
||||||
'status' => 'subscribed',
|
|
||||||
'source' => 'form',
|
|
||||||
]);
|
|
||||||
$newsletter1 = (object)[
|
$newsletter1 = (object)[
|
||||||
'type' => null
|
'type' => null
|
||||||
];
|
];
|
||||||
expect($this->meta->getNewsletterMetaInfo($newsletter1, $subscriber))->equals([
|
expect($this->meta->getNewsletterMetaInfo($newsletter1, $this->subscriber))->equals([
|
||||||
'email_type' => 'unknown',
|
'email_type' => 'unknown',
|
||||||
'subscriber_status' => 'subscribed',
|
'subscriber_status' => 'subscribed',
|
||||||
'subscriber_source' => 'form',
|
'subscriber_source' => 'form',
|
||||||
@@ -224,6 +203,6 @@ class MetaInfoTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function _after() {
|
public function _after() {
|
||||||
Subscriber::deleteMany();
|
$this->truncateEntity(SubscriberEntity::class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user