Spaces:
No application file
No application file
File size: 2,350 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
<?php
declare(strict_types=1);
namespace Mautic\LeadBundle\Tests\Entity;
use Mautic\CoreBundle\Test\AbstractMauticTestCase;
use Mautic\LeadBundle\Entity\Lead;
use Mautic\LeadBundle\Entity\LeadList;
use Mautic\LeadBundle\Entity\ListLead;
class LeadListRepositoryFunctionalTest extends AbstractMauticTestCase
{
public function testCheckLeadSegmentsByIds(): void
{
$lead = $this->createLead();
$segmentA = $this->createSegment();
$segmentB = $this->createSegment('B');
$segmentC = $this->createSegment('C');
$this->createSegmentMember($segmentA, $lead);
$this->createSegmentMember($segmentB, $lead, true);
$leadListRepository = $this->em->getRepository(LeadList::class);
$result = $leadListRepository->checkLeadSegmentsByIds($lead, [$segmentA->getId()]);
$this->assertTrue($result);
$result = $leadListRepository->checkLeadSegmentsByIds($lead, [$segmentB->getId()]);
$this->assertFalse($result);
$result = $leadListRepository->checkLeadSegmentsByIds($lead, [$segmentC->getId()]);
$this->assertFalse($result);
$result = $leadListRepository->checkLeadSegmentsByIds($lead, [$segmentA->getId(), $segmentB->getId(), $segmentC->getId()]);
$this->assertTrue($result);
}
private function createLead(): Lead
{
$lead = new Lead();
$lead->setFirstname('Contact');
$lead->setEmail('[email protected]');
$this->em->persist($lead);
$this->em->flush();
return $lead;
}
private function createSegment(string $suffix = 'A'): LeadList
{
$segment = new LeadList();
$segment->setName("Segment $suffix");
$segment->setPublicName("Segment $suffix");
$segment->setAlias("segment-$suffix");
$this->em->persist($segment);
$this->em->flush();
return $segment;
}
protected function createSegmentMember(LeadList $segment, Lead $lead, bool $isManuallyRemoved = false): void
{
$segmentMember = new ListLead();
$segmentMember->setLead($lead);
$segmentMember->setList($segment);
$segmentMember->setManuallyRemoved($isManuallyRemoved);
$segmentMember->setDateAdded(new \DateTime());
$this->em->persist($segmentMember);
$this->em->flush();
}
}
|