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); } }