Make PostsTask method non-static

[MAILPOET-2029]
This commit is contained in:
Ján Mikláš
2019-05-14 16:16:42 +02:00
committed by M. Shull
parent cc2dfcddb8
commit c6c9442588
3 changed files with 24 additions and 8 deletions

View File

@@ -24,13 +24,20 @@ class Newsletter {
/** @var WPFunctions */
private $wp;
function __construct(WPFunctions $wp = null) {
/** @var PostsTask */
private $posts_task;
function __construct(WPFunctions $wp = null, PostsTask $posts_task = null) {
$settings = new SettingsController();
$this->tracking_enabled = (boolean)$settings->get('tracking.enabled');
if ($wp == null) {
if ($wp === null) {
$wp = new WPFunctions;
}
$this->wp = $wp;
if ($posts_task === null) {
$posts_task = new PostsTask;
}
$this->posts_task = $posts_task;
}
function getNewsletterFromQueue($queue) {
@@ -100,7 +107,7 @@ class Newsletter {
return false;
}
// extract and save newsletter posts
PostsTask::extractAndSave($rendered_newsletter, $newsletter);
$this->posts_task->extractAndSave($rendered_newsletter, $newsletter);
// update queue with the rendered and pre-processed newsletter
$queue->newsletter_rendered_subject = ShortcodesTask::process(
$newsletter->subject,

View File

@@ -7,7 +7,7 @@ use MailPoet\Models\NewsletterPost;
if (!defined('ABSPATH')) exit;
class Posts {
static function extractAndSave($rendered_newsletter, $newsletter) {
function extractAndSave($rendered_newsletter, $newsletter) {
if ($newsletter->type !== NewsletterModel::TYPE_NOTIFICATION_HISTORY) {
return false;
}

View File

@@ -8,6 +8,15 @@ 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,
@@ -16,7 +25,7 @@ class PostsTest extends \MailPoetTest {
$rendered_newsletter = array(
'html' => 'Sample newsletter'
);
expect(PostsTask::extractAndSave($rendered_newsletter, $newsletter))->equals(false);
expect($this->posts_task->extractAndSave($rendered_newsletter, $newsletter))->equals(false);
}
function testItCanExtractAndSavePosts() {
@@ -29,7 +38,7 @@ class PostsTest extends \MailPoetTest {
$rendered_newsletter = array(
'html' => '<a data-post-id="' . $post_id . '" href="#">sample post</a>'
);
expect(PostsTask::extractAndSave($rendered_newsletter, $newsletter))->equals(true);
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);
@@ -45,9 +54,9 @@ class PostsTest extends \MailPoetTest {
$rendered_newsletter = array(
'html' => '<a data-post-id="' . $post_id . '" href="#">sample post</a>'
);
expect(PostsTask::extractAndSave($rendered_newsletter, $newsletter))->equals(false);
expect($this->posts_task->extractAndSave($rendered_newsletter, $newsletter))->equals(false);
$newsletter->type = Newsletter::TYPE_STANDARD;
expect(PostsTask::extractAndSave($rendered_newsletter, $newsletter))->equals(false);
expect($this->posts_task->extractAndSave($rendered_newsletter, $newsletter))->equals(false);
}
function _after() {