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