Add test for filtering subscribers without segment

[MAILPOET-3197]
This commit is contained in:
Jan Lysý
2020-10-29 09:50:49 +01:00
committed by Veljko V
parent 1c912f7b18
commit b1fc127f98

View File

@@ -190,6 +190,31 @@ class SubscriberListingRepositoryTest extends \MailPoetTest {
$this->tester->deleteWordPressUser($wpUserEmail);
}
public function testLoadSubscribersWithoutSegment() {
$list = $this->createSegmentEntity();
$regularSubscriber = $this->createSubscriberEntity();
$regularSubscriber->setStatus(SubscriberEntity::STATUS_SUBSCRIBED);
$this->createSubscriberSegmentEntity($list, $regularSubscriber);
$deletedList = $this->createSegmentEntity();
$deletedList->setDeletedAt(new \DateTimeImmutable());
$subscriberOnDeletedList = $this->createSubscriberEntity();
$subscriberOnDeletedList->setStatus(SubscriberEntity::STATUS_SUBSCRIBED);
$this->createSubscriberSegmentEntity($deletedList, $subscriberOnDeletedList);
$subscriberWithoutList = $this->createSubscriberEntity();
$this->entityManager->flush();
$this->listingData['filter'] = ['segment' => SubscriberListingRepository::FILTER_WITHOUT_LIST];
$this->listingData['sort_by'] = 'id';
$data = $this->repository->getData($this->getListingDefinition());
expect(count($data))->equals(2);
expect($data[0]->getEmail())->equals($subscriberOnDeletedList->getEmail());
expect($data[1]->getEmail())->equals($subscriberWithoutList->getEmail());
$this->listingData['sort_by'] = '';
}
private function createSubscriberEntity(): SubscriberEntity {
$subscriber = new SubscriberEntity();
$rand = rand(0, 100000);