- Adds unit tests for cron's sending queue worker and associated tasks

This commit is contained in:
Vlad
2016-09-18 23:16:19 -04:00
parent b37e85eeb5
commit e11fd66fec
7 changed files with 859 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
<?php
use MailPoet\Cron\Workers\SendingQueue\Tasks\Posts as PostsTask;
use MailPoet\Models\Newsletter;
use MailPoet\Models\NewsletterPost;
if(!defined('ABSPATH')) exit;
class PostsTaskTest extends MailPoetTest {
function testItFailsWhenNewsletterDoesNotExist() {
expect(PostsTask::extractAndSave($newsletter = false))->equals(false);
}
function testItFailsWhenNoPostsArePresent() {
$newsletter = (object)array(
'id' => 1,
'_transient' => (object)array(
'rendered_body' => array(
'html' => 'Sample newsletter'
)
)
);
expect(PostsTask::extractAndSave($newsletter))->equals(false);
}
function testItCanExtractAndSavePosts() {
$post_id = 10;
$newsletter = (object)array(
'id' => 1,
'type' => Newsletter::TYPE_STANDARD,
'_transient' => (object)array(
'rendered_body' => array(
'html' => '<a data-post-id="' . $post_id . '" href="#">sample post</a>'
)
)
);
expect(PostsTask::extractAndSave($newsletter))->equals(true);
$newsletter_post = NewsletterPost::where('newsletter_id', $newsletter->id)
->findOne();
expect($newsletter_post->post_id)->equals($post_id);
}
function testItSetsNewsletterIdToParentIdWhenNewsletterIsANotificationHistory() {
$post_id = 10;
$newsletter = (object)array(
'id' => 2,
'parent_id' => 1,
'type' => Newsletter::TYPE_NOTIFICATION_HISTORY,
'_transient' => (object)array(
'rendered_body' => array(
'html' => '<a data-post-id="' . $post_id . '" href="#">sample post</a>'
)
)
);
expect(PostsTask::extractAndSave($newsletter))->equals(true);
$newsletter_post = NewsletterPost::where('newsletter_id', $newsletter->parent_id)
->findOne();
expect($newsletter_post->post_id)->equals($post_id);
}
function _after() {
ORM::raw_execute('TRUNCATE ' . NewsletterPost::$_table);
}
}