From 1b31ad11d4c4ab73a27a2d73d1afb9ea885409fd Mon Sep 17 00:00:00 2001 From: John Oleksowicz Date: Wed, 8 Nov 2023 10:47:12 -0600 Subject: [PATCH] Update UnsubscribeTokens to use DI MAILPOET-5710 --- .../lib/Cron/Workers/UnsubscribeTokens.php | 31 +++++++++++++------ .../Cron/Workers/UnsubscribeTokensTest.php | 10 +++--- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/mailpoet/lib/Cron/Workers/UnsubscribeTokens.php b/mailpoet/lib/Cron/Workers/UnsubscribeTokens.php index 55d43df61a..2744c0ac73 100644 --- a/mailpoet/lib/Cron/Workers/UnsubscribeTokens.php +++ b/mailpoet/lib/Cron/Workers/UnsubscribeTokens.php @@ -1,13 +1,13 @@ -security = $security; + $this->entityManager = $entityManager; + } + public function processTaskStrategy(ScheduledTaskEntity $task, $timer) { $meta = $task->getMeta(); @@ -48,10 +64,7 @@ class UnsubscribeTokens extends SimpleWorker { } private function addTokens($entityClass, &$lastProcessedId = 0) { - $security = ContainerWrapper::getInstance()->get(Security::class); - $entityManager = ContainerWrapper::getInstance()->get(EntityManager::class); - - $queryBuilder = $entityManager->createQueryBuilder(); + $queryBuilder = $this->entityManager->createQueryBuilder(); $entities = $queryBuilder ->select('PARTIAL e.{id}') @@ -70,11 +83,11 @@ class UnsubscribeTokens extends SimpleWorker { foreach ($entities as $entity) { $lastProcessedId = $entity->getId(); - $entity->setUnsubscribeToken($security->generateUnsubscribeTokenByEntity($entity)); - $entityManager->persist($entity); + $entity->setUnsubscribeToken($this->security->generateUnsubscribeTokenByEntity($entity)); + $this->entityManager->persist($entity); } - $entityManager->flush(); + $this->entityManager->flush(); return count($entities); } diff --git a/mailpoet/tests/integration/Cron/Workers/UnsubscribeTokensTest.php b/mailpoet/tests/integration/Cron/Workers/UnsubscribeTokensTest.php index 0f8a247ce2..3e648feff3 100644 --- a/mailpoet/tests/integration/Cron/Workers/UnsubscribeTokensTest.php +++ b/mailpoet/tests/integration/Cron/Workers/UnsubscribeTokensTest.php @@ -32,10 +32,14 @@ class UnsubscribeTokensTest extends \MailPoetTest { /** @var NewslettersRepository */ private $newslettersRepository; + /** @var UnsubscribeTokens */ + private $worker; + public function _before() { parent::_before(); $this->subscribersRepository = $this->diContainer->get(SubscribersRepository::class); $this->newslettersRepository = $this->diContainer->get(NewslettersRepository::class); + $this->worker = $this->diContainer->get(UnsubscribeTokens::class); $this->subscriberWithToken = (new SubscriberFactory()) ->withEmail('subscriber1@test.com') @@ -62,8 +66,7 @@ class UnsubscribeTokensTest extends \MailPoetTest { public function testItAddsTokensToSubscribers() { verify($this->subscriberWithoutToken->getUnsubscribeToken())->null(); - $worker = new UnsubscribeTokens(); - $worker->processTaskStrategy(new ScheduledTaskEntity(), microtime(true)); + $this->worker->processTaskStrategy(new ScheduledTaskEntity(), microtime(true)); $subscriberWithToken = $this->subscribersRepository->findOneById($this->subscriberWithToken->getId()); $this->assertInstanceOf(SubscriberEntity::class, $subscriberWithToken); $subscriberWithoutToken = $this->subscribersRepository->findOneById($this->subscriberWithoutToken->getId()); @@ -74,8 +77,7 @@ class UnsubscribeTokensTest extends \MailPoetTest { public function testItAddsTokensToNewsletters() { verify($this->newsletterWithoutToken->getUnsubscribeToken())->null(); - $worker = new UnsubscribeTokens(); - $worker->processTaskStrategy(new ScheduledTaskEntity(), microtime(true)); + $this->worker->processTaskStrategy(new ScheduledTaskEntity(), microtime(true)); $newsletterWithToken = $this->newslettersRepository->findOneById($this->newsletterWithToken->getId()); $newsletterWithoutToken = $this->newslettersRepository->findOneById($this->newsletterWithoutToken->getId()); $this->assertInstanceOf(NewsletterEntity::class, $newsletterWithToken);