Spaces:
No application file
No application file
File size: 1,919 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 |
<?php
declare(strict_types=1);
namespace Mautic\LeadBundle\Tests\Controller\Api;
use Doctrine\ORM\Tools\Pagination\Paginator;
use Mautic\LeadBundle\Controller\Api\CustomFieldsApiControllerTrait;
use Mautic\LeadBundle\Model\FieldModel;
use PHPUnit\Framework\Assert;
final class CustomFieldsApiControllerTraitTest extends \PHPUnit\Framework\TestCase
{
public function testGetEntityFormOptions(): void
{
$result = [
'field_1' => [
'label' => 'Field 1',
'type' => 'text',
],
'field_2' => [
'label' => 'Field 2',
'type' => 'text',
],
];
$paginator = $this->createMock(Paginator::class);
$paginator->method('getIterator')
->willReturn($result);
$modelFake = $this->createMock(FieldModel::class);
$modelFake->expects(self::once())
->method('getEntities')
->willReturn($paginator);
$controller = new class($modelFake) {
use CustomFieldsApiControllerTrait;
private object $model;
private string $entityNameOne = 'lead';
public function __construct(object $modelFake)
{
$this->model = $modelFake;
}
/**
* @return mixed[]
*/
public function getEntityFormOptionsPublic(): array
{
return $this->getEntityFormOptions();
}
public function getModel(?string $name): object
{
return $this->model;
}
};
Assert::assertSame($result, (array) $controller->getEntityFormOptionsPublic()['fields']); // Calling once, should be live
Assert::assertSame($result, (array) $controller->getEntityFormOptionsPublic()['fields']); // Calling twice, should be cached
}
}
|