public function testUpdateFieldDefinition()
{
$draftId = $this->createDraftContentType()->id;
$contentTypeService = $this->repository->getContentTypeService();
$contentTypeDraft = $contentTypeService->loadContentTypeDraft($draftId);
$fieldDefinition = $contentTypeDraft->getFieldDefinition('body');
$fieldDefinitionUpdateStruct = $contentTypeService->newFieldDefinitionUpdateStruct();
$fieldDefinitionUpdateStruct->identifier = $fieldDefinition->identifier . 'changed';
$fieldDefinitionUpdateStruct->names = array('eng-US' => $fieldDefinition->getName('eng-US') . 'changed', 'ger-DE' => $fieldDefinition->getName('ger-DE') . 'changed');
$fieldDefinitionUpdateStruct->descriptions = array('eng-US' => $fieldDefinition->getDescription('eng-US') . 'changed', 'ger-DE' => $fieldDefinition->getDescription('ger-DE') . 'changed');
$fieldDefinitionUpdateStruct->fieldGroup = $fieldDefinition->fieldGroup . 'changed';
$fieldDefinitionUpdateStruct->position = $fieldDefinition->position + 1;
$fieldDefinitionUpdateStruct->isTranslatable = !$fieldDefinition->isTranslatable;
$fieldDefinitionUpdateStruct->isRequired = !$fieldDefinition->isRequired;
$fieldDefinitionUpdateStruct->isInfoCollector = !$fieldDefinition->isInfoCollector;
$fieldDefinitionUpdateStruct->defaultValue = (string) $fieldDefinition->defaultValue . 'changed';
//$fieldDefinitionUpdateStruct->validators
$fieldDefinitionUpdateStruct->fieldSettings = array('textRows' => $fieldDefinition->fieldSettings['textRows'] + 1);
$fieldDefinitionUpdateStruct->isSearchable = $fieldDefinition->isSearchable;
$contentTypeService->updateFieldDefinition($contentTypeDraft, $fieldDefinition, $fieldDefinitionUpdateStruct);
$contentTypeDraft = $contentTypeService->loadContentTypeDraft($draftId);
$updatedFieldDefinition = $contentTypeDraft->getFieldDefinition($fieldDefinitionUpdateStruct->identifier);
$this->assertInstanceOf('eZ\\Publish\\API\\Repository\\Values\\ContentType\\FieldDefinition', $updatedFieldDefinition);
$this->assertUpdateFieldDefinitionStructValues($fieldDefinition, $updatedFieldDefinition, $fieldDefinitionUpdateStruct);
}