Replace Subscriber model with Doctrine in UnsubscribeTokensTest

[MAILPOET-5680]
This commit is contained in:
Rodrigo Primo
2023-10-25 16:45:15 -03:00
committed by Aschepikov
parent fdb23cc143
commit b2afbf99c5

View File

@@ -5,25 +5,36 @@ namespace MailPoet\Test\Cron\Workers;
use Codeception\Util\Fixtures; use Codeception\Util\Fixtures;
use MailPoet\Cron\Workers\UnsubscribeTokens; use MailPoet\Cron\Workers\UnsubscribeTokens;
use MailPoet\Entities\ScheduledTaskEntity; use MailPoet\Entities\ScheduledTaskEntity;
use MailPoet\Entities\SubscriberEntity;
use MailPoet\Models\Newsletter; use MailPoet\Models\Newsletter;
use MailPoet\Models\Subscriber; use MailPoet\Subscribers\SubscribersRepository;
use MailPoet\Test\DataFactories\Subscriber as SubscriberFactory;
class UnsubscribeTokensTest extends \MailPoetTest { class UnsubscribeTokensTest extends \MailPoetTest {
/** @var SubscriberEntity */
private $subscriberWithToken; private $subscriberWithToken;
private $newsletterWithToken; private $newsletterWithToken;
/** @var SubscriberEntity */
private $subscriberWithoutToken; private $subscriberWithoutToken;
private $newsletterWithoutToken; private $newsletterWithoutToken;
/** @var SubscribersRepository */
private $subscribersRepository;
public function _before() { public function _before() {
parent::_before(); parent::_before();
$this->subscriberWithToken = Subscriber::createOrUpdate(['email' => 'subscriber1@test.com']); $this->subscribersRepository = $this->diContainer->get(SubscribersRepository::class);
$this->subscriberWithToken->set('unsubscribe_token', 'aaabbbcccdddeee');
$this->subscriberWithToken->save();
$this->subscriberWithoutToken = Subscriber::createOrUpdate(['email' => 'subscriber2@test.com']); $this->subscriberWithToken = (new SubscriberFactory())
$this->subscriberWithoutToken->set('unsubscribe_token', null); ->withEmail('subscriber1@test.com')
$this->subscriberWithoutToken->save(); ->withUnsubscribeToken('aaabbbcccdddeee')
->create();
$this->subscriberWithoutToken = (new SubscriberFactory())
->withEmail('subscriber2@test.com')
->create();
$this->newsletterWithToken = Newsletter::createOrUpdate([ $this->newsletterWithToken = Newsletter::createOrUpdate([
'subject' => 'My Newsletter', 'subject' => 'My Newsletter',
@@ -43,12 +54,15 @@ class UnsubscribeTokensTest extends \MailPoetTest {
} }
public function testItAddsTokensToSubscribers() { public function testItAddsTokensToSubscribers() {
verify($this->subscriberWithoutToken->getUnsubscribeToken())->null();
$worker = new UnsubscribeTokens(); $worker = new UnsubscribeTokens();
$worker->processTaskStrategy(new ScheduledTaskEntity(), microtime(true)); $worker->processTaskStrategy(new ScheduledTaskEntity(), microtime(true));
$this->subscriberWithToken = Subscriber::findOne($this->subscriberWithToken->id); $subscriberWithToken = $this->subscribersRepository->findOneById($this->subscriberWithToken->getId());
$this->subscriberWithoutToken = Subscriber::findOne($this->subscriberWithoutToken->id); $this->assertInstanceOf(SubscriberEntity::class, $subscriberWithToken);
verify($this->subscriberWithToken->unsubscribe_token)->equals('aaabbbcccdddeee'); $subscriberWithoutToken = $this->subscribersRepository->findOneById($this->subscriberWithoutToken->getId());
verify(strlen($this->subscriberWithoutToken->unsubscribe_token))->equals(15); $this->assertInstanceOf(SubscriberEntity::class, $subscriberWithoutToken);
verify($subscriberWithToken->getUnsubscribeToken())->equals('aaabbbcccdddeee');
verify(strlen($subscriberWithoutToken->getUnsubscribeToken() ?? ''))->equals(15);
} }
public function testItAddsTokensToNewsletters() { public function testItAddsTokensToNewsletters() {