postsTask = new PostsTask;
}
public function testItFailsWhenNoPostsArePresent() {
$newsletter = new NewsletterEntity();
$newsletter->setType(NewsletterEntity::TYPE_NOTIFICATION_HISTORY);
$newsletter->setId(1);
$renderedNewsletter = [
'html' => 'Sample newsletter',
];
expect($this->postsTask->extractAndSave($renderedNewsletter, $newsletter))->equals(false);
}
public function testItCanExtractAndSavePosts() {
$parent = new NewsletterEntity();
$parent->setType(NewsletterEntity::TYPE_NOTIFICATION);
$parent->setSubject('xx');
$newsletter = new NewsletterEntity();
$newsletter->setType(NewsletterEntity::TYPE_NOTIFICATION_HISTORY);
$newsletter->setSubject('xx');
$newsletter->setId(2);
$newsletter->setParent($parent);
$this->entityManager->persist($parent);
$this->entityManager->persist($newsletter);
$this->entityManager->flush();
$postId = 10;
$renderedNewsletter = [
'html' => 'sample post',
];
expect($this->postsTask->extractAndSave($renderedNewsletter, $newsletter))->equals(true);
$newsletterPostRepository = ContainerWrapper::getInstance()->get(NewsletterPostsRepository::class);
$newsletterPost = $newsletterPostRepository->findOneBy(['newsletter' => $parent]);
expect($newsletterPost)->isInstanceOf(NewsletterPostEntity::class);
expect($newsletterPost->getPostId())->equals($postId);
}
public function testItDoesNotSavePostsWhenNewsletterIsNotANotificationHistory() {
$postId = 10;
$parent = new NewsletterEntity();
$parent->setType(NewsletterEntity::TYPE_WELCOME);
$newsletter = new NewsletterEntity();
$newsletter->setType(NewsletterEntity::TYPE_WELCOME);
$newsletter->setId(2);
$newsletter->setParent($parent);
$renderedNewsletter = [
'html' => 'sample post',
];
expect($this->postsTask->extractAndSave($renderedNewsletter, $newsletter))->equals(false);
$newsletter->setType(NewsletterEntity::TYPE_STANDARD);
expect($this->postsTask->extractAndSave($renderedNewsletter, $newsletter))->equals(false);
}
public function _after() {
$this->truncateEntity(NewsletterPostEntity::class);
}
}