Spaces:
No application file
No application file
File size: 3,027 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 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
<?php
namespace Mautic\ApiBundle\Tests;
use Doctrine\ORM\Tools\Pagination\Paginator;
use Mautic\ApiBundle\Helper\EntityResultHelper;
use Mautic\LeadBundle\Entity\Lead;
use PHPUnit\Framework\TestCase;
class EntityResultHelperTest extends TestCase
{
public const NEW_TITLE = 'Callback Title';
public function testGetArrayEntities(): void
{
$resultHelper = new EntityResultHelper();
$lead2 = new Lead();
$lead2->setId(2);
$lead5 = new Lead();
$lead5->setId(5);
$results = [2 => $lead2, 5 => $lead5];
$arrayResult = $resultHelper->getArray($results);
$this->assertEquals($results, $arrayResult);
$arrayResult = $resultHelper->getArray($results, function ($entity): void {
$this->modifyEntityData($entity);
});
foreach ($arrayResult as $entity) {
$this->assertEquals($entity->getTitle(), self::NEW_TITLE);
}
}
public function testGetArrayPaginator(): void
{
$resultHelper = new EntityResultHelper();
$lead2 = new Lead();
$lead2->setId(2);
$lead5 = new Lead();
$lead5->setId(5);
$results = [$lead2, $lead5];
$iterator = new \ArrayIterator($results);
$paginator = $this->getMockBuilder(Paginator::class)
->disableOriginalConstructor()
->onlyMethods(['getIterator'])
->getMock();
$paginator->expects($this->any())
->method('getIterator')
->willReturn($iterator);
$arrayResult = $resultHelper->getArray($paginator);
$this->assertEquals($results, $arrayResult);
$arrayResult = $resultHelper->getArray($results, function ($entity): void {
$this->modifyEntityData($entity);
});
foreach ($arrayResult as $entity) {
$this->assertEquals($entity->getTitle(), self::NEW_TITLE);
}
}
public function testGetArrayAppendedData(): void
{
$resultHelper = new EntityResultHelper();
$lead2 = new Lead();
$lead2->setId(2);
$lead5 = new Lead();
$lead5->setId(5);
$lead7 = new Lead();
$lead7->setId(7);
$data = [[$lead2, 'title' => 'Title 2'], [$lead5, 'title' => 'Title 5'], [$lead7, 'title' => 'Title 7']];
$expectedResult = [$lead2, $lead5, $lead7];
$arrayResult = $resultHelper->getArray($data);
$this->assertEquals($expectedResult, $arrayResult);
foreach ($arrayResult as $entity) {
$this->assertEquals($entity->getTitle(), 'Title '.$entity->getId());
}
$arrayResult = $resultHelper->getArray($data, function ($entity): void {
$this->modifyEntityData($entity);
});
foreach ($arrayResult as $entity) {
$this->assertEquals($entity->getTitle(), self::NEW_TITLE);
}
}
private function modifyEntityData(Lead $entity): void
{
$entity->setTitle(self::NEW_TITLE);
}
}
|