Spaces:
No application file
No application file
| declare(strict_types=1); | |
| namespace Mautic\FormBundle\Tests\Entity; | |
| use Mautic\FormBundle\Entity\Field; | |
| use Mautic\FormBundle\Entity\Form; | |
| use PHPUnit\Framework\Assert; | |
| final class FormTest extends \PHPUnit\Framework\TestCase | |
| { | |
| /** | |
| * @dataProvider setNoIndexDataProvider | |
| */ | |
| public function testSetNoIndex($value, $expected, array $changes): void | |
| { | |
| $form = new Form(); | |
| $form->setNoIndex($value); | |
| Assert::assertSame($expected, $form->getNoIndex()); | |
| Assert::assertSame($changes, $form->getChanges()); | |
| } | |
| public static function setNoIndexDataProvider(): iterable | |
| { | |
| yield [null, null, []]; | |
| yield [true, true, ['noIndex' => [null, true]]]; | |
| yield [false, false, ['noIndex' => [null, false]]]; | |
| yield ['', false, ['noIndex' => [null, false]]]; | |
| yield [0, false, ['noIndex' => [null, false]]]; | |
| yield ['string', true, ['noIndex' => [null, true]]]; | |
| } | |
| public function testGetMappedFieldValues(): void | |
| { | |
| $form = $this->createForm(); | |
| $result = [ | |
| [ | |
| 'formFieldId' => null, | |
| 'mappedObject' => 'contact', | |
| 'mappedField' => 'email', | |
| ], | |
| [ | |
| 'formFieldId' => null, | |
| 'mappedObject' => 'company', | |
| 'mappedField' => 'companyemail', | |
| ], | |
| [ | |
| 'formFieldId' => null, | |
| 'mappedObject' => 'company', | |
| 'mappedField' => 'companyname', | |
| ], | |
| ]; | |
| Assert::assertSame($result, $form->getMappedFieldValues()); | |
| } | |
| public function testGetMappedFieldObjects(): void | |
| { | |
| $form = $this->createForm(); | |
| Assert::assertSame(['contact', 'company'], $form->getMappedFieldObjects()); | |
| } | |
| private function createForm(): Form | |
| { | |
| $form = new Form(); | |
| $contactField = new Field(); | |
| $companyFieldA = new Field(); | |
| $companyFieldB = new Field(); | |
| $notMappedField = new Field(); | |
| $contactField->setMappedObject('contact'); | |
| $contactField->setMappedField('email'); | |
| $companyFieldA->setMappedObject('company'); | |
| $companyFieldA->setMappedField('companyemail'); | |
| $companyFieldB->setMappedObject('company'); | |
| $companyFieldB->setMappedField('companyname'); | |
| $form->addField('contact_field_a', $contactField); | |
| $form->addField('company_field_a', $companyFieldA); | |
| $form->addField('company_field_b', $companyFieldB); | |
| $form->addField('not_mapped_field_a', $notMappedField); | |
| return $form; | |
| } | |
| } | |