Replace NewsletterLink with NewsletterLinkEntity in the class LinksTest
[MAILPOET-3816]
This commit is contained in:
@@ -3,18 +3,32 @@
|
|||||||
namespace MailPoet\Test\Cron\Workers\SendingQueue\Tasks;
|
namespace MailPoet\Test\Cron\Workers\SendingQueue\Tasks;
|
||||||
|
|
||||||
use MailPoet\Cron\Workers\SendingQueue\Tasks\Links;
|
use MailPoet\Cron\Workers\SendingQueue\Tasks\Links;
|
||||||
|
use MailPoet\Cron\Workers\StatsNotifications\NewsletterLinkRepository;
|
||||||
|
use MailPoet\Entities\NewsletterEntity;
|
||||||
use MailPoet\Entities\NewsletterLinkEntity;
|
use MailPoet\Entities\NewsletterLinkEntity;
|
||||||
use MailPoet\Models\Newsletter;
|
use MailPoet\Entities\SendingQueueEntity;
|
||||||
use MailPoet\Models\NewsletterLink;
|
use MailPoet\Test\DataFactories\Newsletter as NewsletterFactory;
|
||||||
use MailPoetVendor\Idiorm\ORM;
|
|
||||||
|
|
||||||
class LinksTest extends \MailPoetTest {
|
class LinksTest extends \MailPoetTest {
|
||||||
/** @var Links */
|
/** @var Links */
|
||||||
private $links;
|
private $links;
|
||||||
|
|
||||||
|
/** @var NewsletterEntity */
|
||||||
|
private $newsletter;
|
||||||
|
|
||||||
|
/** @var SendingQueueEntity */
|
||||||
|
private $queue;
|
||||||
|
|
||||||
|
/** @var NewsletterLinkRepository */
|
||||||
|
private $newsletterLinkRepository;
|
||||||
|
|
||||||
protected function _before() {
|
protected function _before() {
|
||||||
parent::_before();
|
parent::_before();
|
||||||
|
$newsletterFactory = new NewsletterFactory();
|
||||||
|
$this->newsletter = $newsletterFactory->withSendingQueue()->create();
|
||||||
|
$this->queue = $this->newsletter->getQueues()->first();
|
||||||
$this->links = $this->diContainer->get(Links::class);
|
$this->links = $this->diContainer->get(Links::class);
|
||||||
|
$this->newsletterLinkRepository = $this->diContainer->get(NewsletterLinkRepository::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItCanSaveLinks() {
|
public function testItCanSaveLinks() {
|
||||||
@@ -24,15 +38,18 @@ class LinksTest extends \MailPoetTest {
|
|||||||
'hash' => 'some_hash',
|
'hash' => 'some_hash',
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
$newsletter = (object)['id' => 1];
|
$newsletter = (object)['id' => $this->newsletter->getId()];
|
||||||
$queue = (object)['id' => 2];
|
$queue = (object)['id' => $this->queue->getId()];
|
||||||
|
|
||||||
$this->links->saveLinks($links, $newsletter, $queue);
|
$this->links->saveLinks($links, $newsletter, $queue);
|
||||||
$newsletterLink = NewsletterLink::where('hash', $links[0]['hash'])
|
|
||||||
->findOne();
|
$newsletterLink = $this->newsletterLinkRepository->findOneBy(['hash' => $links[0]['hash']]);
|
||||||
assert($newsletterLink instanceof NewsletterLink);
|
assert($newsletterLink instanceof NewsletterLinkEntity);
|
||||||
expect($newsletterLink->newsletterId)->equals($newsletter->id);
|
$this->assertInstanceOf(NewsletterEntity::class, $newsletterLink->getNewsletter());
|
||||||
expect($newsletterLink->queueId)->equals($queue->id);
|
expect($newsletterLink->getNewsletter()->getId())->equals($this->newsletter->getId());
|
||||||
expect($newsletterLink->url)->equals($links[0]['link']);
|
$this->assertInstanceOf(SendingQueueEntity::class, $newsletterLink->getQueue());
|
||||||
|
expect($newsletterLink->getQueue()->getId())->equals($this->queue->getId());
|
||||||
|
expect($newsletterLink->getUrl())->equals($links[0]['link']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItCanHashAndReplaceLinks() {
|
public function testItCanHashAndReplaceLinks() {
|
||||||
@@ -51,38 +68,38 @@ class LinksTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testItCanProcessRenderedBody() {
|
public function testItCanProcessRenderedBody() {
|
||||||
$newsletter = Newsletter::create();
|
|
||||||
$newsletter->type = Newsletter::TYPE_STANDARD;
|
|
||||||
$newsletter->save();
|
|
||||||
$renderedNewsletter = [
|
$renderedNewsletter = [
|
||||||
'html' => '<a href="http://example.com">Example Link</a>',
|
'html' => '<a href="http://example.com">Example Link</a>',
|
||||||
'text' => '<a href="http://example.com">Example Link</a>',
|
'text' => '<a href="http://example.com">Example Link</a>',
|
||||||
];
|
];
|
||||||
$queue = (object)['id' => 2];
|
|
||||||
$result = $this->links->process($renderedNewsletter, $newsletter, $queue);
|
$result = $this->links->process($renderedNewsletter, $this->newsletter, $this->queue);
|
||||||
$newsletterLink = NewsletterLink::where('newsletter_id', $newsletter->id)
|
|
||||||
->findOne();
|
$newsletterLink = $this->newsletterLinkRepository->findOneBy(['newsletter' => $this->newsletter->getId()]);
|
||||||
assert($newsletterLink instanceof NewsletterLink);
|
assert($newsletterLink instanceof NewsletterLinkEntity);
|
||||||
expect($result['html'])->stringContainsString($newsletterLink->hash);
|
expect($result['html'])->stringContainsString($newsletterLink->getHash());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItCanEnsureThatInstantUnsubscribeLinkIsAlwaysPresent() {
|
public function testItCanEnsureThatInstantUnsubscribeLinkIsAlwaysPresent() {
|
||||||
$newsletter = Newsletter::create();
|
|
||||||
$newsletter->type = Newsletter::TYPE_STANDARD;
|
|
||||||
$newsletter->save();
|
|
||||||
$renderedNewsletter = [
|
$renderedNewsletter = [
|
||||||
'html' => '<a href="http://example.com">Example Link</a>',
|
'html' => '<a href="http://example.com">Example Link</a>',
|
||||||
'text' => '<a href="http://example.com">Example Link</a>',
|
'text' => '<a href="http://example.com">Example Link</a>',
|
||||||
];
|
];
|
||||||
$queue = (object)['id' => 2];
|
|
||||||
$this->links->process($renderedNewsletter, $newsletter, $queue);
|
$this->links->process($renderedNewsletter, $this->newsletter, $this->queue);
|
||||||
$unsubscribeCount = NewsletterLink::where('newsletter_id', $newsletter->id)
|
|
||||||
->where('url', NewsletterLinkEntity::INSTANT_UNSUBSCRIBE_LINK_SHORT_CODE)->count();
|
$unsubscribeCount = $this->newsletterLinkRepository->countBy(
|
||||||
|
[
|
||||||
|
'newsletter' => $this->newsletter->getId(),
|
||||||
|
'url' => NewsletterLinkEntity::INSTANT_UNSUBSCRIBE_LINK_SHORT_CODE,
|
||||||
|
]
|
||||||
|
);
|
||||||
expect($unsubscribeCount)->equals(1);
|
expect($unsubscribeCount)->equals(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function _after() {
|
public function _after() {
|
||||||
ORM::raw_execute('TRUNCATE ' . Newsletter::$_table);
|
$this->truncateEntity(NewsletterEntity::class);
|
||||||
ORM::raw_execute('TRUNCATE ' . NewsletterLink::$_table);
|
$this->truncateEntity(NewsletterLinkEntity::class);
|
||||||
|
$this->truncateEntity(SendingQueueEntity::class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user