public function testSaveEditor()
{
$viewModel = ViewModel::fromArray(array('name' => 'View Name', 'identifier' => 'View identifier', 'description' => 'View Description', 'content' => 'View Content'));
$viewModel->save();
$layoutModel = LayoutModel::fromArray(array('name' => 'Layout Name', 'identifier' => 'Layout identifier', 'description' => 'Layout Description', 'content' => 'Layout Content'));
$layoutModel->save();
$userModel = UserModel::fromArray(array('lastname' => 'User test', 'firstname' => 'User test', 'email' => '[email protected]', 'login' => 'test', 'user_acl_role_id' => 1));
$userModel->setPassword('test');
$userModel->save();
$documentTypeModel = DocumentTypeModel::fromArray(array('name' => 'Document Type Name', 'description' => 'Document Type description', 'icon_id' => 1, 'defaultview_id' => $viewModel->getId(), 'user_id' => $userModel->getId()));
$documentTypeModel->save();
$tabModel = TabModel::fromArray(array('name' => 'TabTest', 'description' => 'TabTest', 'sort_order' => 1, 'document_type_id' => $documentTypeModel->getId()));
$tabModel->save();
$documentModel = DocumentModel::fromArray(array('name' => 'DocumentTest', 'url_key' => 'document-test', 'status' => DocumentModel::STATUS_ENABLE, 'sort_order' => 1, 'show_in_nav' => true, 'user_id' => $userModel->getId(), 'document_type_id' => $documentTypeModel->getId(), 'view_id' => $viewModel->getId(), 'layout_id' => $layoutModel->getId(), 'parent_id' => 0));
$documentModel->save();
$propertyModel = PropertyModel::fromArray(array('datatype_id' => $this->object->getId(), 'document_id' => $documentModel->getId(), 'tab_id' => $tabModel->getId(), 'name' => 'PropertyTest', 'identifier' => 'PropertyTest', 'description' => 'PropertyTest', 'required' => true, 'sort_order' => 1));
$propertyModel->save();
$this->assertFalse(Model::saveEditor(Registry::get('Application')->getServiceManager(), $propertyModel));
$propertyModel->isRequired(false);
$this->assertTrue(Model::saveEditor(Registry::get('Application')->getServiceManager(), $propertyModel));
$propertyModel->delete();
$documentModel->delete();
$tabModel->delete();
$documentTypeModel->delete();
$viewModel->delete();
$layoutModel->delete();
}