protected function assertCreatedFieldDefinitionCorrect($fieldDefinitionCreateStruct, $fieldDefinition)
{
foreach ($fieldDefinitionCreateStruct as $propertyName => $propertyValue) {
switch ($propertyName) {
case 'fieldSettings':
$defaultSettings = $this->repository->getFieldTypeService()->getFieldType($fieldDefinitionCreateStruct->fieldTypeIdentifier)->getSettingsSchema();
$fieldDefinitionPropertyValue = (array) $fieldDefinition->{$propertyName} + $defaultSettings;
$propertyValue = (array) $propertyValue + $defaultSettings;
ksort($fieldDefinitionPropertyValue);
ksort($propertyValue);
break;
case 'validatorConfiguration':
$fieldDefinitionPropertyValue = (array) $fieldDefinition->{$propertyName};
$propertyValue = (array) $propertyValue;
$sorter = function ($a, $b) {
if ($a->identifier == $b->identifier) {
return 0;
}
return $a->identifier < $b->identifier ? -1 : 1;
};
usort($fieldDefinitionPropertyValue, $sorter);
usort($propertyValue, $sorter);
break;
default:
$fieldDefinitionPropertyValue = $fieldDefinition->{$propertyName};
}
$this->assertEquals($propertyValue, $fieldDefinitionPropertyValue, "Field definition property '{$propertyName}' is not correctly created");
}
}