posts_task = new PostsTask; } function testItFailsWhenNoPostsArePresent() { $newsletter = (object)[ 'id' => 1, 'type' => Newsletter::TYPE_NOTIFICATION_HISTORY, ]; $rendered_newsletter = [ 'html' => 'Sample newsletter', ]; expect($this->posts_task->extractAndSave($rendered_newsletter, $newsletter))->equals(false); } function testItCanExtractAndSavePosts() { $post_id = 10; $newsletter = (object)[ 'id' => 2, 'parent_id' => 1, 'type' => Newsletter::TYPE_NOTIFICATION_HISTORY, ]; $rendered_newsletter = [ 'html' => 'sample post', ]; 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)[ 'id' => 2, 'parent_id' => 1, 'type' => Newsletter::TYPE_WELCOME, ]; $rendered_newsletter = [ 'html' => 'sample post', ]; 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); } }