Files
piratepoet/tests/integration/Cron/Workers/SendingQueue/Tasks/PostsTest.php
Ján Mikláš c6c9442588 Make PostsTask method non-static
[MAILPOET-2029]
2019-05-16 09:33:00 -04:00

66 lines
2.0 KiB
PHP

<?php
namespace MailPoet\Test\Cron\Workers\SendingQueue\Tasks;
use MailPoet\Cron\Workers\SendingQueue\Tasks\Posts as PostsTask;
use MailPoet\Models\Newsletter;
use MailPoet\Models\NewsletterPost;
if (!defined('ABSPATH')) exit;
class PostsTest extends \MailPoetTest {
/** @var PostsTask */
private $posts_task;
function _before() {
parent::_before();
$this->posts_task = new PostsTask;
}
function testItFailsWhenNoPostsArePresent() {
$newsletter = (object)array(
'id' => 1,
'type' => Newsletter::TYPE_NOTIFICATION_HISTORY
);
$rendered_newsletter = array(
'html' => 'Sample newsletter'
);
expect($this->posts_task->extractAndSave($rendered_newsletter, $newsletter))->equals(false);
}
function testItCanExtractAndSavePosts() {
$post_id = 10;
$newsletter = (object)array(
'id' => 2,
'parent_id' => 1,
'type' => Newsletter::TYPE_NOTIFICATION_HISTORY
);
$rendered_newsletter = array(
'html' => '<a data-post-id="' . $post_id . '" href="#">sample post</a>'
);
expect($this->posts_task->extractAndSave($rendered_newsletter, $newsletter))->equals(true);
$newsletter_post = NewsletterPost::where('newsletter_id', $newsletter->parent_id)
->findOne();
expect($newsletter_post->post_id)->equals($post_id);
}
function testItDoesNotSavePostsWhenNewsletterIsNotANotificationHistory() {
$post_id = 10;
$newsletter = (object)array(
'id' => 2,
'parent_id' => 1,
'type' => Newsletter::TYPE_WELCOME
);
$rendered_newsletter = array(
'html' => '<a data-post-id="' . $post_id . '" href="#">sample post</a>'
);
expect($this->posts_task->extractAndSave($rendered_newsletter, $newsletter))->equals(false);
$newsletter->type = Newsletter::TYPE_STANDARD;
expect($this->posts_task->extractAndSave($rendered_newsletter, $newsletter))->equals(false);
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . NewsletterPost::$_table);
}
}