Use method createOrUpdate from SegmentRepository in tests
[MAILPOET-3167]
This commit is contained in:
@ -423,8 +423,8 @@ class NewslettersTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testItCanGetListingData() {
|
public function testItCanGetListingData() {
|
||||||
$segment1 = $this->createSegment('Segment 1');
|
$segment1 = $this->segmentRepository->createOrUpdate('Segment 1');
|
||||||
$segment2 = $this->createSegment('Segment 2');
|
$segment2 = $this->segmentRepository->createOrUpdate('Segment 2');
|
||||||
|
|
||||||
$this->createNewsletterSegment($this->newsletter, $segment1);
|
$this->createNewsletterSegment($this->newsletter, $segment1);
|
||||||
$this->createNewsletterSegment($this->newsletter, $segment2);
|
$this->createNewsletterSegment($this->newsletter, $segment2);
|
||||||
@ -458,8 +458,8 @@ class NewslettersTest extends \MailPoetTest {
|
|||||||
|
|
||||||
public function testItCanFilterListing() {
|
public function testItCanFilterListing() {
|
||||||
// create 2 segments
|
// create 2 segments
|
||||||
$segment1 = $this->createSegment('Segment 1');
|
$segment1 = $this->segmentRepository->createOrUpdate('Segment 1');
|
||||||
$segment2 = $this->createSegment('Segment 2');
|
$segment2 = $this->segmentRepository->createOrUpdate('Segment 2');
|
||||||
|
|
||||||
// link standard newsletter to the 2 segments
|
// link standard newsletter to the 2 segments
|
||||||
$this->createNewsletterSegment($this->newsletter, $segment1);
|
$this->createNewsletterSegment($this->newsletter, $segment1);
|
||||||
@ -718,13 +718,6 @@ class NewslettersTest extends \MailPoetTest {
|
|||||||
return $option;
|
return $option;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function createSegment(string $name): SegmentEntity {
|
|
||||||
$segment = new SegmentEntity($name, SegmentEntity::TYPE_DEFAULT, 'some description');
|
|
||||||
$this->segmentRepository->persist($segment);
|
|
||||||
$this->segmentRepository->flush();
|
|
||||||
return $segment;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function createNewsletterSegment(
|
private function createNewsletterSegment(
|
||||||
NewsletterEntity $newsletter,
|
NewsletterEntity $newsletter,
|
||||||
SegmentEntity $segment
|
SegmentEntity $segment
|
||||||
|
@ -45,9 +45,9 @@ class SegmentsTest extends \MailPoetTest {
|
|||||||
$this->subscriberRepository = ContainerWrapper::getInstance()->get(SubscribersRepository::class);
|
$this->subscriberRepository = ContainerWrapper::getInstance()->get(SubscribersRepository::class);
|
||||||
$this->subscriberSegmentRepository = ContainerWrapper::getInstance()->get(SubscriberSegmentRepository::class);
|
$this->subscriberSegmentRepository = ContainerWrapper::getInstance()->get(SubscriberSegmentRepository::class);
|
||||||
|
|
||||||
$this->segment1 = $this->createSegment('Segment 1');
|
$this->segment1 = $this->segmentRepository->createOrUpdate('Segment 1');
|
||||||
$this->segment2 = $this->createSegment('Segment 2');
|
$this->segment2 = $this->segmentRepository->createOrUpdate('Segment 2');
|
||||||
$this->segment3 = $this->createSegment('Segment 3');
|
$this->segment3 = $this->segmentRepository->createOrUpdate('Segment 3');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItCanGetASegment(): void {
|
public function testItCanGetASegment(): void {
|
||||||
@ -201,13 +201,6 @@ class SegmentsTest extends \MailPoetTest {
|
|||||||
return $subscriberSegment;
|
return $subscriberSegment;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function createSegment(string $name): SegmentEntity {
|
|
||||||
$segment = new SegmentEntity($name, SegmentEntity::TYPE_DEFAULT, '');
|
|
||||||
$this->entityManager->persist($segment);
|
|
||||||
$this->entityManager->flush();
|
|
||||||
return $segment;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function createSubsriber(string $email): SubscriberEntity {
|
private function createSubsriber(string $email): SubscriberEntity {
|
||||||
$subscriber = new SubscriberEntity();
|
$subscriber = new SubscriberEntity();
|
||||||
$subscriber->setEmail($email);
|
$subscriber->setEmail($email);
|
||||||
|
@ -5,20 +5,25 @@ namespace MailPoet\Entities;
|
|||||||
use MailPoet\Newsletter\NewslettersRepository;
|
use MailPoet\Newsletter\NewslettersRepository;
|
||||||
use MailPoet\Newsletter\Options\NewsletterOptionsRepository;
|
use MailPoet\Newsletter\Options\NewsletterOptionsRepository;
|
||||||
use MailPoet\Newsletter\Segment\NewsletterSegmentRepository;
|
use MailPoet\Newsletter\Segment\NewsletterSegmentRepository;
|
||||||
|
use MailPoet\Segments\SegmentsRepository;
|
||||||
|
|
||||||
class NewsletterEntityTest extends \MailPoetTest {
|
class NewsletterEntityTest extends \MailPoetTest {
|
||||||
|
|
||||||
/** @var NewslettersRepository */
|
/** @var NewslettersRepository */
|
||||||
private $newsletterRepository;
|
private $newsletterRepository;
|
||||||
|
|
||||||
|
/** @var SegmentsRepository */
|
||||||
|
private $segmentRepository;
|
||||||
|
|
||||||
public function _before() {
|
public function _before() {
|
||||||
$this->cleanup();
|
$this->cleanup();
|
||||||
$this->newsletterRepository = $this->diContainer->get(NewslettersRepository::class);
|
$this->newsletterRepository = $this->diContainer->get(NewslettersRepository::class);
|
||||||
|
$this->segmentRepository = $this->diContainer->get(SegmentsRepository::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItRemovesOrphanedSegmentRelations() {
|
public function testItRemovesOrphanedSegmentRelations() {
|
||||||
$newsletter = $this->createNewsletter();
|
$newsletter = $this->createNewsletter();
|
||||||
$segment = $this->createSegment();
|
$segment = $this->segmentRepository->createOrUpdate('Segment', 'Segment description');
|
||||||
$newsletterSegment = new NewsletterSegmentEntity($newsletter, $segment);
|
$newsletterSegment = new NewsletterSegmentEntity($newsletter, $segment);
|
||||||
$this->entityManager->persist($newsletterSegment);
|
$this->entityManager->persist($newsletterSegment);
|
||||||
$this->entityManager->flush();
|
$this->entityManager->flush();
|
||||||
@ -86,12 +91,6 @@ class NewsletterEntityTest extends \MailPoetTest {
|
|||||||
return $newsletter;
|
return $newsletter;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function createSegment(): SegmentEntity {
|
|
||||||
$segment = new SegmentEntity('Segment', SegmentEntity::TYPE_DEFAULT, 'Segment description');
|
|
||||||
$this->entityManager->persist($segment);
|
|
||||||
return $segment;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function createOptionField(string $name): NewsletterOptionFieldEntity {
|
private function createOptionField(string $name): NewsletterOptionFieldEntity {
|
||||||
$newsletterOptionField = new NewsletterOptionFieldEntity();
|
$newsletterOptionField = new NewsletterOptionFieldEntity();
|
||||||
$newsletterOptionField->setName($name);
|
$newsletterOptionField->setName($name);
|
||||||
|
@ -10,12 +10,16 @@ use MailPoet\Entities\ScheduledTaskSubscriberEntity;
|
|||||||
use MailPoet\Entities\SegmentEntity;
|
use MailPoet\Entities\SegmentEntity;
|
||||||
use MailPoet\Entities\SendingQueueEntity;
|
use MailPoet\Entities\SendingQueueEntity;
|
||||||
use MailPoet\Entities\SubscriberEntity;
|
use MailPoet\Entities\SubscriberEntity;
|
||||||
|
use MailPoet\Segments\SegmentsRepository;
|
||||||
use MailPoet\Tasks\Sending as SendingTask;
|
use MailPoet\Tasks\Sending as SendingTask;
|
||||||
use MailPoet\WP\Functions as WPFunctions;
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
use MailPoetVendor\Carbon\Carbon;
|
use MailPoetVendor\Carbon\Carbon;
|
||||||
|
|
||||||
class WelcomeTest extends \MailPoetTest {
|
class WelcomeTest extends \MailPoetTest {
|
||||||
|
|
||||||
|
/** @var SegmentsRepository */
|
||||||
|
private $segmentRepository;
|
||||||
|
|
||||||
/** @var WelcomeScheduler */
|
/** @var WelcomeScheduler */
|
||||||
private $welcomeScheduler;
|
private $welcomeScheduler;
|
||||||
|
|
||||||
@ -33,10 +37,13 @@ class WelcomeTest extends \MailPoetTest {
|
|||||||
|
|
||||||
public function _before() {
|
public function _before() {
|
||||||
parent::_before();
|
parent::_before();
|
||||||
|
$this->segmentRepository = $this->diContainer->get(SegmentsRepository::class);
|
||||||
$this->welcomeScheduler = $this->diContainer->get(WelcomeScheduler::class);
|
$this->welcomeScheduler = $this->diContainer->get(WelcomeScheduler::class);
|
||||||
$this->subscriber = $this->createSubscriber('welcome_test_1@example.com');
|
$this->subscriber = $this->createSubscriber('welcome_test_1@example.com');
|
||||||
$this->segment = $this->createSegment('welcome_segment');
|
$this->segment = $this->segmentRepository->createOrUpdate('welcome_segment');
|
||||||
$this->wpSegment = $this->createSegment('Wordpress', SegmentEntity::TYPE_WP_USERS);
|
$this->wpSegment = $this->segmentRepository->createOrUpdate('Wordpress');
|
||||||
|
$this->wpSegment->setType(SegmentEntity::TYPE_WP_USERS);
|
||||||
|
$this->segmentRepository->flush();
|
||||||
$this->newsletter = $this->createWelcomeNewsletter();
|
$this->newsletter = $this->createWelcomeNewsletter();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -185,8 +192,8 @@ class WelcomeTest extends \MailPoetTest {
|
|||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
$segment2 = $this->createSegment('Segment 2');
|
$segment2 = $this->segmentRepository->createOrUpdate('Segment 2');
|
||||||
$segment3 = $this->createSegment('Segment 3');
|
$segment3 = $this->segmentRepository->createOrUpdate('Segment 3');
|
||||||
|
|
||||||
// queue is created and scheduled for delivery one day later
|
// queue is created and scheduled for delivery one day later
|
||||||
$result = $this->welcomeScheduler->scheduleSubscriberWelcomeNotification(
|
$result = $this->welcomeScheduler->scheduleSubscriberWelcomeNotification(
|
||||||
@ -445,13 +452,6 @@ class WelcomeTest extends \MailPoetTest {
|
|||||||
return $subscriber;
|
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() {
|
public function _after() {
|
||||||
Carbon::setTestNow();
|
Carbon::setTestNow();
|
||||||
$this->truncateEntity(NewsletterEntity::class);
|
$this->truncateEntity(NewsletterEntity::class);
|
||||||
|
@ -13,14 +13,18 @@ class SegmentSubscribersRepositoryTest extends \MailPoetTest {
|
|||||||
/** @var SegmentSubscribersRepository */
|
/** @var SegmentSubscribersRepository */
|
||||||
private $repository;
|
private $repository;
|
||||||
|
|
||||||
|
/** @var SegmentsRepository */
|
||||||
|
private $segmentRepository;
|
||||||
|
|
||||||
public function _before() {
|
public function _before() {
|
||||||
parent::_before();
|
parent::_before();
|
||||||
|
$this->segmentRepository = $this->diContainer->get(SegmentsRepository::class);
|
||||||
$this->repository = $this->diContainer->get(SegmentSubscribersRepository::class);
|
$this->repository = $this->diContainer->get(SegmentSubscribersRepository::class);
|
||||||
$this->cleanup();
|
$this->cleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItReturnsOnlySubscribedSubscribersForStaticSegment() {
|
public function testItReturnsOnlySubscribedSubscribersForStaticSegment() {
|
||||||
$segment = $this->createSegmentEntity();
|
$segment = $this->segmentRepository->createOrUpdate('Segment' . rand(0, 10000));
|
||||||
|
|
||||||
$this->createSubscriberEntity(); // Subscriber without segment
|
$this->createSubscriberEntity(); // Subscriber without segment
|
||||||
|
|
||||||
@ -103,12 +107,6 @@ class SegmentSubscribersRepositoryTest extends \MailPoetTest {
|
|||||||
return $subscriber;
|
return $subscriber;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function createSegmentEntity(): SegmentEntity {
|
|
||||||
$segment = new SegmentEntity('Segment' . rand(0, 10000), SegmentEntity::TYPE_DEFAULT, 'Segment description');
|
|
||||||
$this->entityManager->persist($segment);
|
|
||||||
return $segment;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function createSubscriberSegmentEntity(SegmentEntity $segment, SubscriberEntity $subscriber): SubscriberSegmentEntity {
|
private function createSubscriberSegmentEntity(SegmentEntity $segment, SubscriberEntity $subscriber): SubscriberSegmentEntity {
|
||||||
$subscriberSegment = new SubscriberSegmentEntity($segment, $subscriber, SubscriberEntity::STATUS_SUBSCRIBED);
|
$subscriberSegment = new SubscriberSegmentEntity($segment, $subscriber, SubscriberEntity::STATUS_SUBSCRIBED);
|
||||||
$this->entityManager->persist($subscriberSegment);
|
$this->entityManager->persist($subscriberSegment);
|
||||||
|
@ -8,10 +8,14 @@ use MailPoet\Entities\SubscriberEntity;
|
|||||||
use MailPoet\Entities\SubscriberSegmentEntity;
|
use MailPoet\Entities\SubscriberSegmentEntity;
|
||||||
use MailPoet\Listing\ListingDefinition;
|
use MailPoet\Listing\ListingDefinition;
|
||||||
use MailPoet\Segments\DynamicSegments\FilterHandler;
|
use MailPoet\Segments\DynamicSegments\FilterHandler;
|
||||||
|
use MailPoet\Segments\SegmentsRepository;
|
||||||
use MailPoet\Segments\SegmentSubscribersRepository;
|
use MailPoet\Segments\SegmentSubscribersRepository;
|
||||||
|
|
||||||
class SubscriberListingRepositoryTest extends \MailPoetTest {
|
class SubscriberListingRepositoryTest extends \MailPoetTest {
|
||||||
|
|
||||||
|
/** @var SegmentsRepository */
|
||||||
|
private $segmentRepository;
|
||||||
|
|
||||||
/** @var SubscriberListingRepository */
|
/** @var SubscriberListingRepository */
|
||||||
private $repository;
|
private $repository;
|
||||||
|
|
||||||
@ -30,6 +34,7 @@ class SubscriberListingRepositoryTest extends \MailPoetTest {
|
|||||||
];
|
];
|
||||||
|
|
||||||
public function _before() {
|
public function _before() {
|
||||||
|
$this->segmentRepository = $this->diContainer->get(SegmentsRepository::class);
|
||||||
$this->repository = new SubscriberListingRepository(
|
$this->repository = new SubscriberListingRepository(
|
||||||
$this->entityManager,
|
$this->entityManager,
|
||||||
$this->diContainer->get(FilterHandler::class),
|
$this->diContainer->get(FilterHandler::class),
|
||||||
@ -41,12 +46,12 @@ class SubscriberListingRepositoryTest extends \MailPoetTest {
|
|||||||
public function testItBuildsFilters() {
|
public function testItBuildsFilters() {
|
||||||
$this->createSubscriberEntity(); // subscriber without a list
|
$this->createSubscriberEntity(); // subscriber without a list
|
||||||
$subscriberWithDeletedList = $this->createSubscriberEntity();
|
$subscriberWithDeletedList = $this->createSubscriberEntity();
|
||||||
$deletedList = $this->createSegmentEntity();
|
$deletedList = $this->segmentRepository->createOrUpdate('Segment 1');
|
||||||
$deletedList->setDeletedAt(new \DateTimeImmutable());
|
$deletedList->setDeletedAt(new \DateTimeImmutable());
|
||||||
$this->createSubscriberSegmentEntity($deletedList, $subscriberWithDeletedList);
|
$this->createSubscriberSegmentEntity($deletedList, $subscriberWithDeletedList);
|
||||||
|
|
||||||
$subscriberUnsubscribedFromAList = $this->createSubscriberEntity();
|
$subscriberUnsubscribedFromAList = $this->createSubscriberEntity();
|
||||||
$list = $this->createSegmentEntity();
|
$list = $this->segmentRepository->createOrUpdate('Segment 2');
|
||||||
$subscriberSegment = $this->createSubscriberSegmentEntity($list, $subscriberUnsubscribedFromAList);
|
$subscriberSegment = $this->createSubscriberSegmentEntity($list, $subscriberUnsubscribedFromAList);
|
||||||
$subscriberSegment->setStatus(SubscriberEntity::STATUS_UNSUBSCRIBED);
|
$subscriberSegment->setStatus(SubscriberEntity::STATUS_UNSUBSCRIBED);
|
||||||
|
|
||||||
@ -68,7 +73,7 @@ class SubscriberListingRepositoryTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testItBuildsGroups() {
|
public function testItBuildsGroups() {
|
||||||
$list = $this->createSegmentEntity();
|
$list = $this->segmentRepository->createOrUpdate('Segment 3');
|
||||||
|
|
||||||
$this->createSubscriberEntity(); // subscriber without a list
|
$this->createSubscriberEntity(); // subscriber without a list
|
||||||
|
|
||||||
@ -124,7 +129,7 @@ class SubscriberListingRepositoryTest extends \MailPoetTest {
|
|||||||
public function testLoadAllSubscribers() {
|
public function testLoadAllSubscribers() {
|
||||||
$this->createSubscriberEntity(); // subscriber without a list
|
$this->createSubscriberEntity(); // subscriber without a list
|
||||||
|
|
||||||
$list = $this->createSegmentEntity();
|
$list = $this->segmentRepository->createOrUpdate('Segment 4');
|
||||||
$subscriberUnsubscribedFromAList = $this->createSubscriberEntity();
|
$subscriberUnsubscribedFromAList = $this->createSubscriberEntity();
|
||||||
$subscriberSegment = $this->createSubscriberSegmentEntity($list, $subscriberUnsubscribedFromAList);
|
$subscriberSegment = $this->createSubscriberSegmentEntity($list, $subscriberUnsubscribedFromAList);
|
||||||
$subscriberSegment->setStatus(SubscriberEntity::STATUS_UNSUBSCRIBED);
|
$subscriberSegment->setStatus(SubscriberEntity::STATUS_UNSUBSCRIBED);
|
||||||
@ -152,7 +157,7 @@ class SubscriberListingRepositoryTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testLoadSubscribersInDefaultSegment() {
|
public function testLoadSubscribersInDefaultSegment() {
|
||||||
$list = $this->createSegmentEntity();
|
$list = $this->segmentRepository->createOrUpdate('Segment 5');
|
||||||
$subscriberUnsubscribedFromAList = $this->createSubscriberEntity();
|
$subscriberUnsubscribedFromAList = $this->createSubscriberEntity();
|
||||||
$subscriberSegment = $this->createSubscriberSegmentEntity($list, $subscriberUnsubscribedFromAList);
|
$subscriberSegment = $this->createSubscriberSegmentEntity($list, $subscriberUnsubscribedFromAList);
|
||||||
$subscriberSegment->setStatus(SubscriberEntity::STATUS_UNSUBSCRIBED);
|
$subscriberSegment->setStatus(SubscriberEntity::STATUS_UNSUBSCRIBED);
|
||||||
@ -191,12 +196,12 @@ class SubscriberListingRepositoryTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testLoadSubscribersWithoutSegment() {
|
public function testLoadSubscribersWithoutSegment() {
|
||||||
$list = $this->createSegmentEntity();
|
$list = $this->segmentRepository->createOrUpdate('Segment 6');
|
||||||
$regularSubscriber = $this->createSubscriberEntity();
|
$regularSubscriber = $this->createSubscriberEntity();
|
||||||
$regularSubscriber->setStatus(SubscriberEntity::STATUS_SUBSCRIBED);
|
$regularSubscriber->setStatus(SubscriberEntity::STATUS_SUBSCRIBED);
|
||||||
$this->createSubscriberSegmentEntity($list, $regularSubscriber);
|
$this->createSubscriberSegmentEntity($list, $regularSubscriber);
|
||||||
|
|
||||||
$deletedList = $this->createSegmentEntity();
|
$deletedList = $this->segmentRepository->createOrUpdate('Segment 7');
|
||||||
$deletedList->setDeletedAt(new \DateTimeImmutable());
|
$deletedList->setDeletedAt(new \DateTimeImmutable());
|
||||||
$subscriberOnDeletedList = $this->createSubscriberEntity();
|
$subscriberOnDeletedList = $this->createSubscriberEntity();
|
||||||
$subscriberOnDeletedList->setStatus(SubscriberEntity::STATUS_SUBSCRIBED);
|
$subscriberOnDeletedList->setStatus(SubscriberEntity::STATUS_SUBSCRIBED);
|
||||||
@ -227,12 +232,6 @@ class SubscriberListingRepositoryTest extends \MailPoetTest {
|
|||||||
return $subscriber;
|
return $subscriber;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function createSegmentEntity(): SegmentEntity {
|
|
||||||
$segment = new SegmentEntity('Segment' . rand(0, 10000), SegmentEntity::TYPE_DEFAULT, 'Segment description');
|
|
||||||
$this->entityManager->persist($segment);
|
|
||||||
return $segment;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function createDynamicSegmentEntity(): SegmentEntity {
|
private function createDynamicSegmentEntity(): SegmentEntity {
|
||||||
$segment = new SegmentEntity('Segment' . rand(0, 10000), SegmentEntity::TYPE_DYNAMIC, 'Segment description');
|
$segment = new SegmentEntity('Segment' . rand(0, 10000), SegmentEntity::TYPE_DYNAMIC, 'Segment description');
|
||||||
$dynamicFilter = new DynamicSegmentFilterEntity($segment, [
|
$dynamicFilter = new DynamicSegmentFilterEntity($segment, [
|
||||||
|
@ -9,10 +9,13 @@ use MailPoet\Entities\SubscriberCustomFieldEntity;
|
|||||||
use MailPoet\Entities\SubscriberEntity;
|
use MailPoet\Entities\SubscriberEntity;
|
||||||
use MailPoet\Entities\SubscriberSegmentEntity;
|
use MailPoet\Entities\SubscriberSegmentEntity;
|
||||||
use MailPoet\Models\CustomField;
|
use MailPoet\Models\CustomField;
|
||||||
|
use MailPoet\Segments\SegmentsRepository;
|
||||||
|
|
||||||
class SubscribersRepositoryTest extends \MailPoetTest {
|
class SubscribersRepositoryTest extends \MailPoetTest {
|
||||||
/** @var SubscribersRepository */
|
/** @var SubscribersRepository */
|
||||||
private $repository;
|
private $repository;
|
||||||
|
/** @var SegmentsRepository */
|
||||||
|
private $segmentRepository;
|
||||||
/** @var SubscriberSegmentRepository */
|
/** @var SubscriberSegmentRepository */
|
||||||
private $subscriberSegmentRepository;
|
private $subscriberSegmentRepository;
|
||||||
/** @var SubscriberCustomFieldRepository */
|
/** @var SubscriberCustomFieldRepository */
|
||||||
@ -22,6 +25,7 @@ class SubscribersRepositoryTest extends \MailPoetTest {
|
|||||||
parent::_before();
|
parent::_before();
|
||||||
$this->cleanup();
|
$this->cleanup();
|
||||||
$this->repository = $this->diContainer->get(SubscribersRepository::class);
|
$this->repository = $this->diContainer->get(SubscribersRepository::class);
|
||||||
|
$this->segmentRepository = $this->diContainer->get(SegmentsRepository::class);
|
||||||
$this->subscriberSegmentRepository = $this->diContainer->get(SubscriberSegmentRepository::class);
|
$this->subscriberSegmentRepository = $this->diContainer->get(SubscriberSegmentRepository::class);
|
||||||
$this->subscriberCustomFieldRepository = $this->diContainer->get(SubscriberCustomFieldRepository::class);
|
$this->subscriberCustomFieldRepository = $this->diContainer->get(SubscriberCustomFieldRepository::class);
|
||||||
}
|
}
|
||||||
@ -81,7 +85,7 @@ class SubscribersRepositoryTest extends \MailPoetTest {
|
|||||||
public function testItBulkDeleteSubscribers(): void {
|
public function testItBulkDeleteSubscribers(): void {
|
||||||
$subscriberOne = $this->createSubscriber('one@delete.com', new DateTimeImmutable());
|
$subscriberOne = $this->createSubscriber('one@delete.com', new DateTimeImmutable());
|
||||||
$subscriberTwo = $this->createSubscriber('two@delete.com', new DateTimeImmutable());
|
$subscriberTwo = $this->createSubscriber('two@delete.com', new DateTimeImmutable());
|
||||||
$segmentOne = $this->createSegment('One Delete');
|
$segmentOne = $this->segmentRepository->createOrUpdate('One Delete');
|
||||||
$this->createSubscriberSegment($segmentOne, $subscriberOne);
|
$this->createSubscriberSegment($segmentOne, $subscriberOne);
|
||||||
$this->createSubscriberSegment($segmentOne, $subscriberTwo);
|
$this->createSubscriberSegment($segmentOne, $subscriberTwo);
|
||||||
$customField = $this->createCustomField('CF');
|
$customField = $this->createCustomField('CF');
|
||||||
@ -112,8 +116,8 @@ class SubscribersRepositoryTest extends \MailPoetTest {
|
|||||||
public function testItBulkRemoveSubscribersFromSegment(): void {
|
public function testItBulkRemoveSubscribersFromSegment(): void {
|
||||||
$subscriberOne = $this->createSubscriber('one@remove.com', new DateTimeImmutable());
|
$subscriberOne = $this->createSubscriber('one@remove.com', new DateTimeImmutable());
|
||||||
$subscriberTwo = $this->createSubscriber('two@remove.com', new DateTimeImmutable());
|
$subscriberTwo = $this->createSubscriber('two@remove.com', new DateTimeImmutable());
|
||||||
$segmentOne = $this->createSegment('One Remove');
|
$segmentOne = $this->segmentRepository->createOrUpdate('One Remove');
|
||||||
$segmentTwo = $this->createSegment('Two Remove');
|
$segmentTwo = $this->segmentRepository->createOrUpdate('Two Remove');
|
||||||
$this->createSubscriberSegment($segmentOne, $subscriberOne);
|
$this->createSubscriberSegment($segmentOne, $subscriberOne);
|
||||||
$this->createSubscriberSegment($segmentOne, $subscriberTwo);
|
$this->createSubscriberSegment($segmentOne, $subscriberTwo);
|
||||||
$this->createSubscriberSegment($segmentTwo, $subscriberOne);
|
$this->createSubscriberSegment($segmentTwo, $subscriberOne);
|
||||||
@ -179,8 +183,8 @@ class SubscribersRepositoryTest extends \MailPoetTest {
|
|||||||
public function testItBulkRemoveSubscriberFromAllSegments(): void {
|
public function testItBulkRemoveSubscriberFromAllSegments(): void {
|
||||||
$subscriberOne = $this->createSubscriber('one@removeAll.com', new DateTimeImmutable());
|
$subscriberOne = $this->createSubscriber('one@removeAll.com', new DateTimeImmutable());
|
||||||
$subscriberTwo = $this->createSubscriber('two@removeAll.com', new DateTimeImmutable());
|
$subscriberTwo = $this->createSubscriber('two@removeAll.com', new DateTimeImmutable());
|
||||||
$segmentOne = $this->createSegment('One Remove All');
|
$segmentOne = $this->segmentRepository->createOrUpdate('One Remove All');
|
||||||
$segmentTwo = $this->createSegment('Two Remove All');
|
$segmentTwo = $this->segmentRepository->createOrUpdate('Two Remove All');
|
||||||
$this->createSubscriberSegment($segmentOne, $subscriberOne);
|
$this->createSubscriberSegment($segmentOne, $subscriberOne);
|
||||||
$this->createSubscriberSegment($segmentOne, $subscriberTwo);
|
$this->createSubscriberSegment($segmentOne, $subscriberTwo);
|
||||||
$this->createSubscriberSegment($segmentTwo, $subscriberOne);
|
$this->createSubscriberSegment($segmentTwo, $subscriberOne);
|
||||||
@ -214,7 +218,7 @@ class SubscribersRepositoryTest extends \MailPoetTest {
|
|||||||
public function testItBulkAddSubscribersToSegment(): void {
|
public function testItBulkAddSubscribersToSegment(): void {
|
||||||
$subscriberOne = $this->createSubscriber('one@add.com', new DateTimeImmutable());
|
$subscriberOne = $this->createSubscriber('one@add.com', new DateTimeImmutable());
|
||||||
$subscriberTwo = $this->createSubscriber('two@add.com', new DateTimeImmutable());
|
$subscriberTwo = $this->createSubscriber('two@add.com', new DateTimeImmutable());
|
||||||
$segmentOne = $this->createSegment('One Add');
|
$segmentOne = $this->segmentRepository->createOrUpdate('One Add');
|
||||||
|
|
||||||
$subscriberOneId = $subscriberOne->getId();
|
$subscriberOneId = $subscriberOne->getId();
|
||||||
$subscriberTwoId = $subscriberTwo->getId();
|
$subscriberTwoId = $subscriberTwo->getId();
|
||||||
@ -239,8 +243,8 @@ class SubscribersRepositoryTest extends \MailPoetTest {
|
|||||||
public function testItBulMoveSubscribersToSegment(): void {
|
public function testItBulMoveSubscribersToSegment(): void {
|
||||||
$subscriberOne = $this->createSubscriber('one@move.com', new DateTimeImmutable());
|
$subscriberOne = $this->createSubscriber('one@move.com', new DateTimeImmutable());
|
||||||
$subscriberTwo = $this->createSubscriber('two@move.com', new DateTimeImmutable());
|
$subscriberTwo = $this->createSubscriber('two@move.com', new DateTimeImmutable());
|
||||||
$segmentOne = $this->createSegment('One Move');
|
$segmentOne = $this->segmentRepository->createOrUpdate('One Move');
|
||||||
$segmentTwo = $this->createSegment('Two Move');
|
$segmentTwo = $this->segmentRepository->createOrUpdate('Two Move');
|
||||||
$this->createSubscriberSegment($segmentOne, $subscriberOne);
|
$this->createSubscriberSegment($segmentOne, $subscriberOne);
|
||||||
$this->createSubscriberSegment($segmentTwo, $subscriberTwo);
|
$this->createSubscriberSegment($segmentTwo, $subscriberTwo);
|
||||||
|
|
||||||
@ -314,13 +318,6 @@ class SubscribersRepositoryTest extends \MailPoetTest {
|
|||||||
return $subscriber;
|
return $subscriber;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function createSegment(string $name): SegmentEntity {
|
|
||||||
$segment = new SegmentEntity($name, SegmentEntity::TYPE_DEFAULT, 'some description');
|
|
||||||
$this->entityManager->persist($segment);
|
|
||||||
$this->entityManager->flush();
|
|
||||||
return $segment;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function createSubscriberSegment(SegmentEntity $segment, SubscriberEntity $subscriber): SubscriberSegmentEntity {
|
private function createSubscriberSegment(SegmentEntity $segment, SubscriberEntity $subscriber): SubscriberSegmentEntity {
|
||||||
$subscriberSegment = new SubscriberSegmentEntity($segment, $subscriber, SubscriberEntity::STATUS_SUBSCRIBED);
|
$subscriberSegment = new SubscriberSegmentEntity($segment, $subscriber, SubscriberEntity::STATUS_SUBSCRIBED);
|
||||||
$this->entityManager->persist($subscriberSegment);
|
$this->entityManager->persist($subscriberSegment);
|
||||||
|
Reference in New Issue
Block a user