Use method createOrUpdate from SegmentRepository in tests

[MAILPOET-3167]
This commit is contained in:
Jan Lysý
2020-12-03 15:44:52 +01:00
committed by Veljko V
parent 79abec8f13
commit 83cb272555
7 changed files with 53 additions and 74 deletions

View File

@ -10,12 +10,16 @@ use MailPoet\Entities\ScheduledTaskSubscriberEntity;
use MailPoet\Entities\SegmentEntity;
use MailPoet\Entities\SendingQueueEntity;
use MailPoet\Entities\SubscriberEntity;
use MailPoet\Segments\SegmentsRepository;
use MailPoet\Tasks\Sending as SendingTask;
use MailPoet\WP\Functions as WPFunctions;
use MailPoetVendor\Carbon\Carbon;
class WelcomeTest extends \MailPoetTest {
/** @var SegmentsRepository */
private $segmentRepository;
/** @var WelcomeScheduler */
private $welcomeScheduler;
@ -33,10 +37,13 @@ class WelcomeTest extends \MailPoetTest {
public function _before() {
parent::_before();
$this->segmentRepository = $this->diContainer->get(SegmentsRepository::class);
$this->welcomeScheduler = $this->diContainer->get(WelcomeScheduler::class);
$this->subscriber = $this->createSubscriber('welcome_test_1@example.com');
$this->segment = $this->createSegment('welcome_segment');
$this->wpSegment = $this->createSegment('Wordpress', SegmentEntity::TYPE_WP_USERS);
$this->segment = $this->segmentRepository->createOrUpdate('welcome_segment');
$this->wpSegment = $this->segmentRepository->createOrUpdate('Wordpress');
$this->wpSegment->setType(SegmentEntity::TYPE_WP_USERS);
$this->segmentRepository->flush();
$this->newsletter = $this->createWelcomeNewsletter();
}
@ -185,8 +192,8 @@ class WelcomeTest extends \MailPoetTest {
]
);
$segment2 = $this->createSegment('Segment 2');
$segment3 = $this->createSegment('Segment 3');
$segment2 = $this->segmentRepository->createOrUpdate('Segment 2');
$segment3 = $this->segmentRepository->createOrUpdate('Segment 3');
// queue is created and scheduled for delivery one day later
$result = $this->welcomeScheduler->scheduleSubscriberWelcomeNotification(
@ -445,13 +452,6 @@ class WelcomeTest extends \MailPoetTest {
return $subscriber;
}
private function createSegment($name, $type = SegmentEntity::TYPE_DEFAULT): SegmentEntity {
$segment = new SegmentEntity($name, $type, $name);
$this->entityManager->persist($segment);
$this->entityManager->flush();
return $segment;
}
public function _after() {
Carbon::setTestNow();
$this->truncateEntity(NewsletterEntity::class);