Fix SendingQueueTests after Doctrine refactor
[MAILPOET-5682]
This commit is contained in:
@@ -102,6 +102,12 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
/** @var ScheduledTaskSubscribersRepository */
|
/** @var ScheduledTaskSubscribersRepository */
|
||||||
private $scheduledTaskSubscribersRepository;
|
private $scheduledTaskSubscribersRepository;
|
||||||
|
|
||||||
|
/** @var ScheduledTaskEntity */
|
||||||
|
private $scheduledTaskEntity;
|
||||||
|
|
||||||
|
/** @var SendingQueueEntity */
|
||||||
|
private $sendingQueueEntity;
|
||||||
|
|
||||||
public function _before() {
|
public function _before() {
|
||||||
parent::_before();
|
parent::_before();
|
||||||
$wpUsers = get_users();
|
$wpUsers = get_users();
|
||||||
@@ -170,6 +176,15 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$this->subscribersRepository = $this->diContainer->get(SubscribersRepository::class);
|
$this->subscribersRepository = $this->diContainer->get(SubscribersRepository::class);
|
||||||
$this->sendingQueuesRepository = $this->diContainer->get(SendingQueuesRepository::class);
|
$this->sendingQueuesRepository = $this->diContainer->get(SendingQueuesRepository::class);
|
||||||
$this->sendingQueueWorker = $this->getSendingQueueWorker();
|
$this->sendingQueueWorker = $this->getSendingQueueWorker();
|
||||||
|
|
||||||
|
$scheduledTaskEntity = $this->scheduledTasksRepository->findOneById($this->queue->taskId);
|
||||||
|
$this->assertInstanceOf(ScheduledTaskEntity::class, $scheduledTaskEntity);
|
||||||
|
$this->scheduledTaskEntity = $scheduledTaskEntity;
|
||||||
|
|
||||||
|
$sendingQueueEntity = $this->sendingQueuesRepository->findOneById($this->queue->id);
|
||||||
|
$this->assertInstanceOf(SendingQueueEntity::class, $sendingQueueEntity);
|
||||||
|
$this->sendingQueueEntity = $sendingQueueEntity;
|
||||||
|
$this->entityManager->refresh($this->sendingQueueEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getDirectUnsubscribeURL() {
|
private function getDirectUnsubscribeURL() {
|
||||||
@@ -267,7 +282,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$this->entityManager
|
$this->entityManager
|
||||||
);
|
);
|
||||||
$sendingQueueWorker->sendNewsletters(
|
$sendingQueueWorker->sendNewsletters(
|
||||||
$this->queue,
|
$this->scheduledTaskEntity,
|
||||||
$preparedSubscribers = [],
|
$preparedSubscribers = [],
|
||||||
$preparedNewsletters = [],
|
$preparedNewsletters = [],
|
||||||
$preparedSubscribers = [],
|
$preparedSubscribers = [],
|
||||||
@@ -287,6 +302,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$queue = $this->queue;
|
$queue = $this->queue;
|
||||||
$queue->status = SendingQueue::STATUS_COMPLETED;
|
$queue->status = SendingQueue::STATUS_COMPLETED;
|
||||||
$queue->save();
|
$queue->save();
|
||||||
|
$this->entityManager->refresh($this->scheduledTaskEntity);
|
||||||
$sendingQueueWorker = $this->make(
|
$sendingQueueWorker = $this->make(
|
||||||
$this->getSendingQueueWorker(),
|
$this->getSendingQueueWorker(),
|
||||||
[
|
[
|
||||||
@@ -316,7 +332,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$this->entityManager
|
$this->entityManager
|
||||||
);
|
);
|
||||||
$sendingQueueWorker->sendNewsletters(
|
$sendingQueueWorker->sendNewsletters(
|
||||||
$queue,
|
$this->scheduledTaskEntity,
|
||||||
$preparedSubscribers = [],
|
$preparedSubscribers = [],
|
||||||
$preparedNewsletters = [],
|
$preparedNewsletters = [],
|
||||||
$preparedSubscribers = [],
|
$preparedSubscribers = [],
|
||||||
@@ -510,6 +526,12 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$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]';
|
||||||
$queue->setSubscribers($subscriberIds);
|
$queue->setSubscribers($subscriberIds);
|
||||||
|
$queue->save();
|
||||||
|
$scheduledTaskEntity = $this->scheduledTasksRepository->findOneById($queue->taskId);
|
||||||
|
$this->assertInstanceOf(ScheduledTaskEntity::class, $scheduledTaskEntity);
|
||||||
|
$queueEntity = $scheduledTaskEntity->getSendingQueue();
|
||||||
|
$this->assertInstanceOf(SendingQueueEntity::class, $queueEntity);
|
||||||
|
$this->entityManager->refresh($queueEntity);
|
||||||
$this->settings->set('tracking.level', TrackingConfig::LEVEL_BASIC);
|
$this->settings->set('tracking.level', TrackingConfig::LEVEL_BASIC);
|
||||||
|
|
||||||
$newsletter = $this->newsletter;
|
$newsletter = $this->newsletter;
|
||||||
@@ -547,7 +569,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
Subscriber::findOne($subscriber2->getId()),
|
Subscriber::findOne($subscriber2->getId()),
|
||||||
];
|
];
|
||||||
|
|
||||||
$sendingQueueWorker->processQueue($queue, $newsletter, $subscribersModels, $timer);
|
$sendingQueueWorker->processQueue($scheduledTaskEntity, $newsletter, $subscribersModels, $timer);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItCanProcessSubscribersInBulk() {
|
public function testItCanProcessSubscribersInBulk() {
|
||||||
@@ -698,8 +720,13 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$this->entityManager
|
$this->entityManager
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$sendingQueue = $this->sendingQueuesRepository->findOneById($queue->id);
|
||||||
|
$this->assertInstanceOf(SendingQueueEntity::class, $sendingQueue);
|
||||||
|
$scheduledTask = $this->scheduledTasksRepository->findOneBySendingQueue($sendingQueue);
|
||||||
|
$this->assertInstanceOf(ScheduledTaskEntity::class, $scheduledTask);
|
||||||
|
|
||||||
$sendingQueueWorker->sendNewsletters(
|
$sendingQueueWorker->sendNewsletters(
|
||||||
$queue,
|
$scheduledTask,
|
||||||
[$this->subscriber->getId(), $wrongSubscriber->getId()],
|
[$this->subscriber->getId(), $wrongSubscriber->getId()],
|
||||||
[],
|
[],
|
||||||
[$this->subscriber->getEmail(), $wrongSubscriber->getEmail()],
|
[$this->subscriber->getEmail(), $wrongSubscriber->getEmail()],
|
||||||
@@ -707,11 +734,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
microtime(true)
|
microtime(true)
|
||||||
);
|
);
|
||||||
|
|
||||||
// load queue and compare data after first sending
|
// compare data after first sending
|
||||||
$sendingQueue = $this->sendingQueuesRepository->findOneById($queue->id);
|
|
||||||
$this->assertInstanceOf(SendingQueueEntity::class, $sendingQueue);
|
|
||||||
$scheduledTask = $this->scheduledTasksRepository->findOneBySendingQueue($sendingQueue);
|
|
||||||
$this->assertInstanceOf(ScheduledTaskEntity::class, $scheduledTask);
|
|
||||||
$this->sendingQueuesRepository->refresh($sendingQueue);
|
$this->sendingQueuesRepository->refresh($sendingQueue);
|
||||||
$this->scheduledTasksRepository->refresh($scheduledTask);
|
$this->scheduledTasksRepository->refresh($scheduledTask);
|
||||||
verify($scheduledTask->getSubscribersByProcessed(ScheduledTaskSubscriber::STATUS_UNPROCESSED))->equals([$this->subscriber]);
|
verify($scheduledTask->getSubscribersByProcessed(ScheduledTaskSubscriber::STATUS_UNPROCESSED))->equals([$this->subscriber]);
|
||||||
@@ -721,7 +744,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
verify($sendingQueue->getCountToProcess())->equals(1);
|
verify($sendingQueue->getCountToProcess())->equals(1);
|
||||||
|
|
||||||
$sendingQueueWorker->sendNewsletters(
|
$sendingQueueWorker->sendNewsletters(
|
||||||
$queue,
|
$scheduledTask,
|
||||||
[$this->subscriber->getId()],
|
[$this->subscriber->getId()],
|
||||||
[],
|
[],
|
||||||
[$this->subscriber->getEmail()],
|
[$this->subscriber->getEmail()],
|
||||||
@@ -816,6 +839,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$this->subscriber->setStatus(Subscriber::STATUS_UNSUBSCRIBED);
|
$this->subscriber->setStatus(Subscriber::STATUS_UNSUBSCRIBED);
|
||||||
$this->entityManager->flush();
|
$this->entityManager->flush();
|
||||||
$this->newsletterSegment->delete();
|
$this->newsletterSegment->delete();
|
||||||
|
$this->entityManager->refresh($this->sendingQueueEntity);
|
||||||
|
|
||||||
$sendingQueueWorker = $this->getSendingQueueWorker(
|
$sendingQueueWorker = $this->getSendingQueueWorker(
|
||||||
$this->construct(
|
$this->construct(
|
||||||
@@ -852,6 +876,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$this->subscriber->getId(), // subscriber that should be processed
|
$this->subscriber->getId(), // subscriber that should be processed
|
||||||
$unsubscribedSubscriber->getId(), // subscriber that should be skipped
|
$unsubscribedSubscriber->getId(), // subscriber that should be skipped
|
||||||
]);
|
]);
|
||||||
|
$this->entityManager->refresh($this->sendingQueueEntity);
|
||||||
$sendingQueueWorker = $this->getSendingQueueWorker(
|
$sendingQueueWorker = $this->getSendingQueueWorker(
|
||||||
$this->construct(
|
$this->construct(
|
||||||
MailerTask::class,
|
MailerTask::class,
|
||||||
@@ -889,6 +914,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
]);
|
]);
|
||||||
$queue->countTotal = 2;
|
$queue->countTotal = 2;
|
||||||
$queue->save();
|
$queue->save();
|
||||||
|
$this->entityManager->refresh($this->sendingQueueEntity);
|
||||||
$sendingQueueWorker = $this->sendingQueueWorker;
|
$sendingQueueWorker = $this->sendingQueueWorker;
|
||||||
$sendingQueueWorker->mailerTask = $this->construct(
|
$sendingQueueWorker->mailerTask = $this->construct(
|
||||||
MailerTask::class,
|
MailerTask::class,
|
||||||
@@ -931,6 +957,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$queue->setSubscribers($subscribers);
|
$queue->setSubscribers($subscribers);
|
||||||
$queue->countTotal = count($subscribers);
|
$queue->countTotal = count($subscribers);
|
||||||
$queue->save();
|
$queue->save();
|
||||||
|
$this->entityManager->refresh($this->sendingQueueEntity);
|
||||||
$sendingQueueWorker = $this->sendingQueueWorker;
|
$sendingQueueWorker = $this->sendingQueueWorker;
|
||||||
$sendingQueueWorker->mailerTask = $this->construct(
|
$sendingQueueWorker->mailerTask = $this->construct(
|
||||||
MailerTask::class,
|
MailerTask::class,
|
||||||
@@ -967,6 +994,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
]);
|
]);
|
||||||
$queue->countTotal = 2;
|
$queue->countTotal = 2;
|
||||||
$queue->save();
|
$queue->save();
|
||||||
|
$this->entityManager->refresh($this->sendingQueueEntity);
|
||||||
$sendingQueueWorker = $this->sendingQueueWorker;
|
$sendingQueueWorker = $this->sendingQueueWorker;
|
||||||
$sendingQueueWorker->mailerTask = $this->construct(
|
$sendingQueueWorker->mailerTask = $this->construct(
|
||||||
MailerTask::class,
|
MailerTask::class,
|
||||||
@@ -1003,6 +1031,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$subscriber = $this->subscriber;
|
$subscriber = $this->subscriber;
|
||||||
$subscriber->setDeletedAt(Carbon::now());
|
$subscriber->setDeletedAt(Carbon::now());
|
||||||
$this->entityManager->flush();
|
$this->entityManager->flush();
|
||||||
|
$this->entityManager->refresh($this->sendingQueueEntity);
|
||||||
$sendingQueueWorker->process();
|
$sendingQueueWorker->process();
|
||||||
|
|
||||||
$sendingQueue = $this->sendingQueuesRepository->findOneById($this->queue->id);
|
$sendingQueue = $this->sendingQueuesRepository->findOneById($this->queue->id);
|
||||||
@@ -1029,6 +1058,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$subscriber = $this->subscriber;
|
$subscriber = $this->subscriber;
|
||||||
$subscriber->setStatus($subscriberStatus);
|
$subscriber->setStatus($subscriberStatus);
|
||||||
$this->entityManager->flush();
|
$this->entityManager->flush();
|
||||||
|
$this->entityManager->refresh($this->sendingQueueEntity);
|
||||||
$sendingQueueWorker->process();
|
$sendingQueueWorker->process();
|
||||||
|
|
||||||
$sendingQueue = $this->sendingQueuesRepository->findOneById($this->queue->id);
|
$sendingQueue = $this->sendingQueuesRepository->findOneById($this->queue->id);
|
||||||
@@ -1062,6 +1092,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$subscriber = $this->subscriber;
|
$subscriber = $this->subscriber;
|
||||||
$subscriber->setStatus(Subscriber::STATUS_UNSUBSCRIBED);
|
$subscriber->setStatus(Subscriber::STATUS_UNSUBSCRIBED);
|
||||||
$this->entityManager->flush();
|
$this->entityManager->flush();
|
||||||
|
$this->entityManager->refresh($this->sendingQueueEntity);
|
||||||
$sendingQueueWorker->process();
|
$sendingQueueWorker->process();
|
||||||
|
|
||||||
$sendingQueue = $this->sendingQueuesRepository->findOneById($this->queue->id);
|
$sendingQueue = $this->sendingQueuesRepository->findOneById($this->queue->id);
|
||||||
@@ -1082,6 +1113,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$subscriberSegment = $this->subscriberSegment;
|
$subscriberSegment = $this->subscriberSegment;
|
||||||
$subscriberSegment->status = Subscriber::STATUS_UNSUBSCRIBED;
|
$subscriberSegment->status = Subscriber::STATUS_UNSUBSCRIBED;
|
||||||
$subscriberSegment->save();
|
$subscriberSegment->save();
|
||||||
|
$this->entityManager->refresh($this->sendingQueueEntity);
|
||||||
$sendingQueueWorker->process();
|
$sendingQueueWorker->process();
|
||||||
|
|
||||||
$sendingQueue = $this->sendingQueuesRepository->findOneById($this->queue->id);
|
$sendingQueue = $this->sendingQueuesRepository->findOneById($this->queue->id);
|
||||||
@@ -1102,6 +1134,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$subscriber = $this->subscriber;
|
$subscriber = $this->subscriber;
|
||||||
$subscriber->setStatus(Subscriber::STATUS_INACTIVE);
|
$subscriber->setStatus(Subscriber::STATUS_INACTIVE);
|
||||||
$this->entityManager->flush();
|
$this->entityManager->flush();
|
||||||
|
$this->entityManager->refresh($this->sendingQueueEntity);
|
||||||
$sendingQueueWorker->process();
|
$sendingQueueWorker->process();
|
||||||
|
|
||||||
$sendingQueue = $this->sendingQueuesRepository->findOneById($this->queue->id);
|
$sendingQueue = $this->sendingQueuesRepository->findOneById($this->queue->id);
|
||||||
@@ -1111,14 +1144,10 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testItPausesSendingWhenProcessedSubscriberListCannotBeUpdated() {
|
public function testItPausesSendingWhenProcessedSubscriberListCannotBeUpdated() {
|
||||||
$sendingTask = $this->createMock(SendingTask::class);
|
$scheduledTaskSubscribersRepository = $this->createMock(ScheduledTaskSubscribersRepository::class);
|
||||||
$sendingTask
|
$scheduledTaskSubscribersRepository
|
||||||
->method('updateProcessedSubscribers')
|
->method('updateProcessedSubscribers')
|
||||||
->will($this->returnValue(false));
|
->willThrowException(new \Exception());
|
||||||
$sendingTask
|
|
||||||
->method('__get')
|
|
||||||
->with('id')
|
|
||||||
->will($this->returnValue(100));
|
|
||||||
$sendingQueueWorker = $this->make(
|
$sendingQueueWorker = $this->make(
|
||||||
$this->getSendingQueueWorker()
|
$this->getSendingQueueWorker()
|
||||||
);
|
);
|
||||||
@@ -1134,7 +1163,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$this->wp,
|
$this->wp,
|
||||||
$this->tasksLinks,
|
$this->tasksLinks,
|
||||||
$this->scheduledTasksRepository,
|
$this->scheduledTasksRepository,
|
||||||
$this->scheduledTaskSubscribersRepository,
|
$scheduledTaskSubscribersRepository,
|
||||||
$this->construct(
|
$this->construct(
|
||||||
MailerTask::class,
|
MailerTask::class,
|
||||||
[$this->diContainer->get(MailerFactory::class)],
|
[$this->diContainer->get(MailerFactory::class)],
|
||||||
@@ -1148,7 +1177,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
);
|
);
|
||||||
try {
|
try {
|
||||||
$sendingQueueWorker->sendNewsletters(
|
$sendingQueueWorker->sendNewsletters(
|
||||||
$sendingTask,
|
$this->scheduledTaskEntity,
|
||||||
$preparedSubscribers = [],
|
$preparedSubscribers = [],
|
||||||
$preparedNewsletters = [],
|
$preparedNewsletters = [],
|
||||||
$preparedSubscribers = [],
|
$preparedSubscribers = [],
|
||||||
@@ -1164,7 +1193,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
verify($mailerLog['error'])->equals(
|
verify($mailerLog['error'])->equals(
|
||||||
[
|
[
|
||||||
'operation' => 'processed_list_update',
|
'operation' => 'processed_list_update',
|
||||||
'error_message' => 'QUEUE-100-PROCESSED-LIST-UPDATE',
|
'error_message' => "QUEUE-{$this->sendingQueueEntity->getId()}-PROCESSED-LIST-UPDATE",
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -1435,6 +1464,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$newsletter->getQueues()->add($queue);
|
$newsletter->getQueues()->add($queue);
|
||||||
|
|
||||||
$this->entityManager->flush();
|
$this->entityManager->flush();
|
||||||
|
$this->entityManager->refresh($queue); // I'm not sure why calling refresh() here is needed and why the tests fail without it (calling $task->getSendingQueue() returns null)
|
||||||
return $queue;
|
return $queue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user