Migrate tests

[MAILPOET-3168]
This commit is contained in:
Pavel Dohnal
2021-01-06 14:00:56 +01:00
committed by Veljko V
parent 1d6cf56fd9
commit b64525ecc5
2 changed files with 96 additions and 0 deletions

View File

@ -3,7 +3,11 @@
namespace MailPoet\API\JSON\ResponseBuilders;
use MailPoet\DI\ContainerWrapper;
use MailPoet\Entities\NewsletterEntity;
use MailPoet\Entities\NewsletterSegmentEntity;
use MailPoet\Entities\SegmentEntity;
use MailPoet\Entities\SubscriberEntity;
use MailPoet\Entities\SubscriberSegmentEntity;
use MailPoetVendor\Doctrine\ORM\EntityManager;
class SegmentsResponseBuilderTest extends \MailPoetTest {
@ -29,4 +33,41 @@ class SegmentsResponseBuilderTest extends \MailPoetTest {
$em->remove($segment);
$em->flush();
}
public function testItBuildsListingsResponse() {
$name = 'Response Listings Builder Test';
$description = 'Testing description';
$di = ContainerWrapper::getInstance();
$em = $di->get(EntityManager::class);
$segment = new SegmentEntity($name, SegmentEntity::TYPE_DEFAULT, $description);
$em->persist($segment);
$subscriber = new SubscriberEntity();
$subscriber->setStatus(SubscriberEntity::STATUS_SUBSCRIBED);
$subscriber->setEmail('a@example.com');
$em->persist($subscriber);
$subscriberSegment = new SubscriberSegmentEntity($segment, $subscriber, SubscriberEntity::STATUS_SUBSCRIBED);
$em->persist($subscriberSegment);
$scheduledNewsletter = new NewsletterEntity();
$scheduledNewsletter->setSubject('subject1');
$scheduledNewsletter->setType(NewsletterEntity::TYPE_STANDARD);
$scheduledNewsletter->setStatus(NewsletterEntity::STATUS_SCHEDULED);
$em->persist($scheduledNewsletter);
$ns = new NewsletterSegmentEntity($scheduledNewsletter, $segment);
$em->persist($ns);
$em->flush();
$responseBuilder = $di->get(SegmentsResponseBuilder::class);
$response = $responseBuilder->buildForListing([$segment]);
expect($response)->array();
expect($response[0]['name'])->equals($name);
expect($response[0]['type'])->equals(SegmentEntity::TYPE_DEFAULT);
expect($response[0]['subscribers_url'])->startsWith('http');
expect($response[0]['subscribers_count']['subscribed'])->equals('1');
expect($response[0]['scheduled_emails_subjects'])->array();
expect($response[0]['scheduled_emails_subjects'])->notEmpty();
expect($response[0]['scheduled_emails_subjects'])->contains('subject1');
}
}