Spaces:
No application file
No application file
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); | |
} | |
} | |