Spaces:
No application file
No application file
declare(strict_types=1); | |
namespace Mautic\LeadBundle\Tests\Provider; | |
use Mautic\LeadBundle\Event\FormAdjustmentEvent; | |
use Mautic\LeadBundle\LeadEvents; | |
use Mautic\LeadBundle\Provider\FormAdjustmentsProvider; | |
use Mautic\LeadBundle\Segment\OperatorOptions; | |
use PHPUnit\Framework\MockObject\MockObject; | |
use Symfony\Component\EventDispatcher\EventDispatcherInterface; | |
use Symfony\Component\Form\FormInterface; | |
final class FormAdjustmentsProviderTest extends \PHPUnit\Framework\TestCase | |
{ | |
/** | |
* @var MockObject&EventDispatcherInterface | |
*/ | |
private MockObject $dispatcher; | |
/** | |
* @var MockObject&FormInterface<mixed> | |
*/ | |
private MockObject $form; | |
private FormAdjustmentsProvider $provider; | |
protected function setUp(): void | |
{ | |
parent::setUp(); | |
$this->dispatcher = $this->createMock(EventDispatcherInterface::class); | |
$this->form = $this->createMock(FormInterface::class); | |
$this->provider = new FormAdjustmentsProvider($this->dispatcher); | |
} | |
public function testAdjustForm(): void | |
{ | |
$this->dispatcher->expects($this->once()) | |
->method('dispatch') | |
->with( | |
$this->callback(function (FormAdjustmentEvent $event) { | |
$this->assertSame($this->form, $event->getForm()); | |
$this->assertSame('email', $event->getFieldAlias()); | |
$this->assertSame('lead', $event->getFieldObject()); | |
$this->assertSame(OperatorOptions::EQUAL_TO, $event->getOperator()); | |
$this->assertSame('text', $event->getFieldType()); | |
return true; | |
}), | |
LeadEvents::ADJUST_FILTER_FORM_TYPE_FOR_FIELD | |
); | |
$this->provider->adjustForm( | |
$this->form, | |
'email', | |
'lead', | |
OperatorOptions::EQUAL_TO, | |
['properties' => ['type' => 'text']] | |
); | |
} | |
} | |