- Deletes post notification history record when no posts are found and

when sending queue record is deleted
- Reverts back changes to the model's delete() method
- Updates unit tests
This commit is contained in:
Vlad
2016-11-21 19:27:08 -05:00
parent 0291c3a9a0
commit e0aeeb29d9
4 changed files with 7 additions and 36 deletions

View File

@@ -46,6 +46,8 @@ class Newsletter {
if($newsletter->type === NewsletterModel::TYPE_NOTIFICATION_HISTORY &&
!$newsletter_contains_posts
) {
// delete notification history record since it will never be sent
$newsletter->delete();
return false;
}
// extract and save newsletter posts

View File

@@ -52,13 +52,6 @@ class SendingQueue extends Model {
return $this;
}
function delete() {
if($parent_newsletter = $this->newsletter()->findOne()) {
$parent_newsletter->delete();
};
return parent::delete();
}
function getSubscribers() {
if(!is_serialized($this->subscribers)) {
return $this->subscribers;

View File

@@ -74,15 +74,19 @@ class NewsletterTaskTest extends MailPoetTest {
->notContains('[mailpoet_open_data]');
}
function testReturnsFalseWhenNewsletterIsANotificationWithoutPosts() {
function testItReturnsFalseAndDeletesNewsletterWhenPostNotificationContainsNoPostsn() {
$newsletter = $this->newsletter;
$newsletter->type = Newsletter::TYPE_NOTIFICATION_HISTORY;
// replace post id data tag with something else
$newsletter->body = str_replace('data-post-id', 'id', $newsletter->body);
$newsletter->save();
// returned result is false
$result = $this->newsletter_task->getAndPreProcess($this->queue);
expect($result)->false();
// newsletter is deleted
$newsletter = Newsletter::findOne($newsletter->id);
expect($newsletter)->false();
}
function testItSavesNewsletterPosts() {

View File

@@ -1,28 +0,0 @@
<?php
use MailPoet\Models\Newsletter;
use MailPoet\Models\SendingQueue;
class SendingQueueModelTest extends MailPoetTest {
function _before() {
$this->newsletter = Newsletter::create();
$this->newsletter->type = Newsletter::TYPE_STANDARD;
$this->newsletter->save();
expect(Newsletter::findMany())->count(1);
$this->sending_queue = SendingQueue::create();
$this->sending_queue->newsletter_id = $this->newsletter->id;
$this->sending_queue->save();
expect(SendingQueue::findMany())->count(1);
}
function testItDeletesParentNewsletter() {
$this->sending_queue->delete();
expect(Newsletter::findMany())->count(0);
expect(SendingQueue::findMany())->count(0);
}
function _after() {
ORM::raw_execute('TRUNCATE ' . Newsletter::$_table);
ORM::raw_execute('TRUNCATE ' . SendingQueue::$_table);
}
}