postsTask = new PostsTask; } public function testItFailsWhenNoPostsArePresent() { $newsletter = (object)[ 'id' => 1, 'type' => Newsletter::TYPE_NOTIFICATION_HISTORY, ]; $renderedNewsletter = [ 'html' => 'Sample newsletter', ]; expect($this->postsTask->extractAndSave($renderedNewsletter, $newsletter))->equals(false); } public function testItCanExtractAndSavePosts() { $postId = 10; $newsletter = (object)[ 'id' => 2, 'parentId' => 1, 'type' => Newsletter::TYPE_NOTIFICATION_HISTORY, ]; $renderedNewsletter = [ 'html' => 'sample post', ]; expect($this->postsTask->extractAndSave($renderedNewsletter, $newsletter))->equals(true); $newsletterPost = NewsletterPost::where('newsletter_id', $newsletter->parentId) ->findOne(); expect($newsletterPost->postId)->equals($postId); } public function testItDoesNotSavePostsWhenNewsletterIsNotANotificationHistory() { $postId = 10; $newsletter = (object)[ 'id' => 2, 'parent_id' => 1, 'type' => Newsletter::TYPE_WELCOME, ]; $renderedNewsletter = [ 'html' => 'sample post', ]; expect($this->postsTask->extractAndSave($renderedNewsletter, $newsletter))->equals(false); $newsletter->type = Newsletter::TYPE_STANDARD; expect($this->postsTask->extractAndSave($renderedNewsletter, $newsletter))->equals(false); } public function _after() { ORM::raw_execute('TRUNCATE ' . NewsletterPost::$_table); } }