Use data factories for generating entities
[MAILPOET-4440]
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
<?php
|
<?php declare(strict_types = 1);
|
||||||
|
|
||||||
namespace MailPoet\Test\API\JSON\v1;
|
namespace MailPoet\Test\API\JSON\v1;
|
||||||
|
|
||||||
@@ -25,9 +25,6 @@ use MailPoet\Entities\SubscriberSegmentEntity;
|
|||||||
use MailPoet\Form\Util\FieldNameObfuscator;
|
use MailPoet\Form\Util\FieldNameObfuscator;
|
||||||
use MailPoet\Listing\Handler;
|
use MailPoet\Listing\Handler;
|
||||||
use MailPoet\Models\CustomField;
|
use MailPoet\Models\CustomField;
|
||||||
use MailPoet\Models\Newsletter;
|
|
||||||
use MailPoet\Models\NewsletterOption;
|
|
||||||
use MailPoet\Models\NewsletterOptionField;
|
|
||||||
use MailPoet\Models\Segment;
|
use MailPoet\Models\Segment;
|
||||||
use MailPoet\Models\SendingQueue;
|
use MailPoet\Models\SendingQueue;
|
||||||
use MailPoet\Models\Subscriber;
|
use MailPoet\Models\Subscriber;
|
||||||
@@ -44,6 +41,9 @@ use MailPoet\Subscribers\SubscriberSubscribeController;
|
|||||||
use MailPoet\Subscription\Captcha;
|
use MailPoet\Subscription\Captcha;
|
||||||
use MailPoet\Subscription\CaptchaSession;
|
use MailPoet\Subscription\CaptchaSession;
|
||||||
use MailPoet\Test\DataFactories\DynamicSegment;
|
use MailPoet\Test\DataFactories\DynamicSegment;
|
||||||
|
use MailPoet\Test\DataFactories\Newsletter as NewsletterFactory;
|
||||||
|
use MailPoet\Test\DataFactories\Segment as SegmentFactory;
|
||||||
|
use MailPoet\Test\DataFactories\Subscriber as SubscriberFactory;
|
||||||
use MailPoet\UnexpectedValueException;
|
use MailPoet\UnexpectedValueException;
|
||||||
use MailPoet\WP\Functions;
|
use MailPoet\WP\Functions;
|
||||||
use MailPoetVendor\Carbon\Carbon;
|
use MailPoetVendor\Carbon\Carbon;
|
||||||
@@ -84,7 +84,6 @@ class SubscribersTest extends \MailPoetTest {
|
|||||||
parent::_before();
|
parent::_before();
|
||||||
$this->cleanup();
|
$this->cleanup();
|
||||||
$container = ContainerWrapper::getInstance();
|
$container = ContainerWrapper::getInstance();
|
||||||
$settings = $container->get(SettingsController::class);
|
|
||||||
$wp = $container->get(Functions::class);
|
$wp = $container->get(Functions::class);
|
||||||
$this->captchaSession = new CaptchaSession($container->get(Functions::class));
|
$this->captchaSession = new CaptchaSession($container->get(Functions::class));
|
||||||
$this->responseBuilder = $container->get(SubscribersResponseBuilder::class);
|
$this->responseBuilder = $container->get(SubscribersResponseBuilder::class);
|
||||||
@@ -102,34 +101,33 @@ class SubscribersTest extends \MailPoetTest {
|
|||||||
);
|
);
|
||||||
$this->obfuscatedEmail = $obfuscator->obfuscate('email');
|
$this->obfuscatedEmail = $obfuscator->obfuscate('email');
|
||||||
$this->obfuscatedSegments = $obfuscator->obfuscate('segments');
|
$this->obfuscatedSegments = $obfuscator->obfuscate('segments');
|
||||||
$this->segment1 = new SegmentEntity('Segment 1', SegmentEntity::TYPE_DEFAULT, 'Segment 1');
|
$this->segment1 = (new SegmentFactory())
|
||||||
$this->segment2 = new SegmentEntity('Segment 2', SegmentEntity::TYPE_DEFAULT, 'Segment 2');
|
->withName('Segment 1')
|
||||||
|
->withType(SegmentEntity::TYPE_DEFAULT)
|
||||||
|
->create();
|
||||||
|
$this->segment2 = (new SegmentFactory())
|
||||||
|
->withName('Segment 2')
|
||||||
|
->withType(SegmentEntity::TYPE_DEFAULT)
|
||||||
|
->create();
|
||||||
$this->entityManager->persist($this->segment1);
|
$this->entityManager->persist($this->segment1);
|
||||||
$this->entityManager->persist($this->segment2);
|
$this->entityManager->persist($this->segment2);
|
||||||
|
|
||||||
$this->subscriber1 = new SubscriberEntity();
|
$this->subscriber1 = (new SubscriberFactory())
|
||||||
$this->subscriber1->setEmail('john@mailpoet.com');
|
->withEmail('john@mailpoet.com')
|
||||||
$this->subscriber1->setFirstName('John');
|
->withFirstName('John')
|
||||||
$this->subscriber1->setLastName('Doe');
|
->withLastName('Doe')
|
||||||
$this->subscriber1->setStatus(SubscriberEntity::STATUS_UNCONFIRMED);
|
->withStatus(SubscriberEntity::STATUS_UNCONFIRMED)
|
||||||
$this->subscriber1->setSource(Source::API);
|
->withSource(Source::API)
|
||||||
$this->entityManager->persist($this->subscriber1);
|
->create();
|
||||||
|
|
||||||
$this->subscriber2 = new SubscriberEntity();
|
$this->subscriber2 = (new SubscriberFactory())
|
||||||
$this->subscriber2->setEmail('jane@mailpoet.com');
|
->withEmail('jane@mailpoet.com')
|
||||||
$this->subscriber2->setFirstName('Jane');
|
->withFirstName('Jane')
|
||||||
$this->subscriber2->setLastName('Doe');
|
->withLastName('Doe')
|
||||||
$this->subscriber2->setStatus(SubscriberEntity::STATUS_SUBSCRIBED);
|
->withStatus(SubscriberEntity::STATUS_SUBSCRIBED)
|
||||||
$this->subscriber2->setSource(Source::API);
|
->withSource(Source::API)
|
||||||
$this->entityManager->persist($this->subscriber2);
|
->withSegments([$this->segment1, $this->segment2])
|
||||||
$this->entityManager->flush();
|
->create();
|
||||||
|
|
||||||
$this->entityManager->persist(
|
|
||||||
new SubscriberSegmentEntity($this->segment1, $this->subscriber2, SubscriberEntity::STATUS_SUBSCRIBED)
|
|
||||||
);
|
|
||||||
$this->entityManager->persist(
|
|
||||||
new SubscriberSegmentEntity($this->segment2, $this->subscriber2, SubscriberEntity::STATUS_SUBSCRIBED)
|
|
||||||
);
|
|
||||||
|
|
||||||
$this->form = new FormEntity('My Form');
|
$this->form = new FormEntity('My Form');
|
||||||
$body = Fixtures::get('form_body_template');
|
$body = Fixtures::get('form_body_template');
|
||||||
@@ -313,7 +311,9 @@ class SubscribersTest extends \MailPoetTest {
|
|||||||
expect($response->data)->equals(
|
expect($response->data)->equals(
|
||||||
$this->responseBuilder->build($this->subscriber2)
|
$this->responseBuilder->build($this->subscriber2)
|
||||||
);
|
);
|
||||||
expect($this->subscriber2->getSegments()->count())->equals(0);
|
expect($this->subscriber2->getSubscriberSegments()->filter(function (SubscriberSegmentEntity $subscriberSegment) {
|
||||||
|
return $subscriberSegment->getStatus() === SubscriberEntity::STATUS_SUBSCRIBED;
|
||||||
|
})->count())->equals(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItCanRestoreASubscriber() {
|
public function testItCanRestoreASubscriber() {
|
||||||
@@ -1029,33 +1029,12 @@ class SubscribersTest extends \MailPoetTest {
|
|||||||
expect($segments->get(1)->getId())->equals($wcSegment->id);
|
expect($segments->get(1)->getId())->equals($wcSegment->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function _createWelcomeNewsletter() {
|
private function _createWelcomeNewsletter(): void {
|
||||||
$welcomeNewsletter = Newsletter::create();
|
$newsletterFactory = new NewsletterFactory();
|
||||||
$welcomeNewsletter->type = Newsletter::TYPE_WELCOME;
|
$newsletterFactory
|
||||||
$welcomeNewsletter->status = Newsletter::STATUS_ACTIVE;
|
->withActiveStatus()
|
||||||
$welcomeNewsletter->save();
|
->withWelcomeTypeForSegment($this->segment1->getId())
|
||||||
expect($welcomeNewsletter->getErrors())->false();
|
->create();
|
||||||
|
|
||||||
$welcomeNewsletterOptions = [
|
|
||||||
'event' => 'segment',
|
|
||||||
'segment' => $this->segment1->getId(),
|
|
||||||
'schedule' => '* * * * *',
|
|
||||||
];
|
|
||||||
|
|
||||||
foreach ($welcomeNewsletterOptions as $option => $value) {
|
|
||||||
$newsletterOptionField = NewsletterOptionField::create();
|
|
||||||
$newsletterOptionField->name = $option;
|
|
||||||
$newsletterOptionField->newsletterType = Newsletter::TYPE_WELCOME;
|
|
||||||
$newsletterOptionField->save();
|
|
||||||
expect($newsletterOptionField->getErrors())->false();
|
|
||||||
|
|
||||||
$newsletterOption = NewsletterOption::create();
|
|
||||||
$newsletterOption->optionFieldId = (int)$newsletterOptionField->id;
|
|
||||||
$newsletterOption->newsletterId = $welcomeNewsletter->id;
|
|
||||||
$newsletterOption->value = (string)$value;
|
|
||||||
$newsletterOption->save();
|
|
||||||
expect($newsletterOption->getErrors())->false();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function _after() {
|
public function _after() {
|
||||||
|
Reference in New Issue
Block a user