Fix Generic.Classes.DuplicateClassName.Found
[MAILPOET-4850]
This commit is contained in:
committed by
John Oleksowicz
parent
a151f93be1
commit
3d24cb1deb
@@ -0,0 +1,61 @@
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace MailPoet\Entities;
|
||||
|
||||
use MailPoet\Subscribers\SubscriberSegmentRepository;
|
||||
use MailPoet\Test\DataFactories\Segment as SegmentFactory;
|
||||
use MailPoet\Test\DataFactories\Subscriber as SubscriberFactory;
|
||||
|
||||
class SubscriberEntityIntegrationTest extends \MailPoetTest {
|
||||
|
||||
/** @var SubscriberSegmentRepository */
|
||||
private $subscriberSegmentRepository;
|
||||
|
||||
/** @var SegmentEntity */
|
||||
private $segment2;
|
||||
|
||||
/** @var SubscriberEntity */
|
||||
private $subscriber;
|
||||
|
||||
protected function _before() {
|
||||
parent::_before();
|
||||
|
||||
// Calling cleanup() here as some tests from other classes don't remove all SubscriberSegmentEntities causing issues here.
|
||||
$this->cleanup();
|
||||
|
||||
$this->subscriberSegmentRepository = $this->diContainer->get(SubscriberSegmentRepository::class);
|
||||
|
||||
$segment1 = (new SegmentFactory())->create();
|
||||
$this->segment2 = (new SegmentFactory())->create();
|
||||
|
||||
$this->subscriber = (new SubscriberFactory())->withSegments([$segment1, $this->segment2])->create();
|
||||
|
||||
$subscriberSegment1 = $this->subscriberSegmentRepository->findOneBy(['segment' => $segment1]);
|
||||
$this->assertInstanceOf(SubscriberSegmentEntity::class, $subscriberSegment1);
|
||||
$subscriberSegment1->setStatus(SubscriberEntity::STATUS_UNSUBSCRIBED);
|
||||
$this->entityManager->persist($subscriberSegment1);
|
||||
$this->entityManager->flush();
|
||||
}
|
||||
|
||||
public function testGetSubscriberSegmentsShouldReturnAllSubscriberSegments() {
|
||||
$allSubscriberSegments = $this->subscriberSegmentRepository->findBy(['subscriber' => $this->subscriber]);
|
||||
$this->assertSame($allSubscriberSegments, $this->subscriber->getSubscriberSegments()->toArray());
|
||||
}
|
||||
|
||||
public function testGetSubscriberSegmentsReturnsOnlySubscribersOfGivenStatus() {
|
||||
$subscriberSegment2 = $this->subscriberSegmentRepository->findOneBy(['segment' => $this->segment2, 'subscriber' => $this->subscriber]);
|
||||
|
||||
$this->assertSame([1 => $subscriberSegment2], $this->subscriber->getSubscriberSegments(SubscriberEntity::STATUS_SUBSCRIBED)->toArray());
|
||||
}
|
||||
|
||||
protected function _after() {
|
||||
parent::_after();
|
||||
$this->cleanup();
|
||||
}
|
||||
|
||||
protected function cleanup() {
|
||||
$this->truncateEntity(SegmentEntity::class);
|
||||
$this->truncateEntity(SubscriberEntity::class);
|
||||
$this->truncateEntity(SubscriberSegmentEntity::class);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user