protected function assertUpdateFieldDefinitionStructValues($originalField, $updatedField, $updateStruct)
{
$this->assertPropertiesCorrect(array('id' => $originalField->id, 'fieldTypeIdentifier' => $originalField->fieldTypeIdentifier, 'identifier' => $updateStruct->identifier === null ? $originalField->identifier : $updateStruct->identifier, 'names' => $updateStruct->names === null ? $originalField->names : $updateStruct->names, 'descriptions' => $updateStruct->descriptions === null ? $originalField->descriptions : $updateStruct->descriptions, 'fieldGroup' => $updateStruct->fieldGroup === null ? $originalField->fieldGroup : $updateStruct->fieldGroup, 'position' => $updateStruct->position === null ? $originalField->position : $updateStruct->position, 'isTranslatable' => $updateStruct->isTranslatable === null ? $originalField->isTranslatable : $updateStruct->isTranslatable, 'isRequired' => $updateStruct->isRequired === null ? $originalField->isRequired : $updateStruct->isRequired, 'isInfoCollector' => $updateStruct->isInfoCollector === null ? $originalField->isInfoCollector : $updateStruct->isInfoCollector, 'defaultValue' => $originalField->defaultValue === null ? $originalField->defaultValue : $updateStruct->defaultValue, 'isSearchable' => $updateStruct->isSearchable === null ? $originalField->isSearchable : $updateStruct->isSearchable), $updatedField, array('defaultValue'));
$expectedFieldSettings = (array) $updateStruct->fieldSettings;
$actualFieldSettings = (array) $updatedField->fieldSettings;
ksort($expectedFieldSettings);
ksort($actualFieldSettings);
$this->assertEquals($expectedFieldSettings, $actualFieldSettings, "Field definition property 'fieldSettings' is not correctly updated");
$expectedValidators = (array) $updateStruct->validatorConfiguration;
$actualValidators = (array) $updatedField->validatorConfiguration;
$sorter = function ($a, $b) {
if ($a->identifier == $b->identifier) {
return 0;
}
return $a->identifier < $b->identifier ? -1 : 1;
};
usort($expectedValidators, $sorter);
usort($actualValidators, $sorter);
$this->assertEquals($expectedValidators, $actualValidators, "Field definition property 'validatorConfiguration' is not correctly updated");
}