/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.dynamic.data.mapping.io.internal;
import com.liferay.dynamic.data.mapping.model.DDMForm;
import com.liferay.dynamic.data.mapping.model.DDMFormField;
import com.liferay.dynamic.data.mapping.model.DDMFormFieldOptions;
import com.liferay.dynamic.data.mapping.model.DDMFormFieldValidation;
import com.liferay.dynamic.data.mapping.model.LocalizedValue;
import com.liferay.dynamic.data.mapping.test.util.DDMFormTestUtil;
import com.liferay.portal.kernel.util.LocaleUtil;
import java.util.ArrayList;
import java.util.List;
/**
* @author Pablo Carvalho
*/
public abstract class BaseDDMFormSerializerTestCase extends BaseDDMTestCase {
protected DDMForm createDDMForm() {
DDMForm ddmForm = new DDMForm();
ddmForm.setAvailableLocales(
DDMFormTestUtil.createAvailableLocales(
LocaleUtil.BRAZIL, LocaleUtil.US));
ddmForm.setDDMFormFields(createDDMFormFields());
ddmForm.setDefaultLocale(LocaleUtil.US);
return ddmForm;
}
protected DDMFormFieldOptions createDDMFormFieldOptions() {
DDMFormFieldOptions ddmFormFieldOptions = new DDMFormFieldOptions();
ddmFormFieldOptions.addOption("Value 1");
ddmFormFieldOptions.addOptionLabel(
"Value 1", LocaleUtil.BRAZIL, "Opcao 1");
ddmFormFieldOptions.addOptionLabel(
"Value 1", LocaleUtil.US, "Option 1");
ddmFormFieldOptions.addOption("Value 2");
ddmFormFieldOptions.addOptionLabel(
"Value 2", LocaleUtil.BRAZIL, "Opcao 2");
ddmFormFieldOptions.addOptionLabel(
"Value 2", LocaleUtil.US, "Option 2");
return ddmFormFieldOptions;
}
protected List<DDMFormField> createDDMFormFields() {
List<DDMFormField> ddmFormFields = new ArrayList<>();
ddmFormFields.add(
createNestedDDMFormFields("ParentField", "ChildField"));
ddmFormFields.add(createRadioDDMFormField("BooleanField"));
ddmFormFields.add(createSelectDDMFormField("SelectField"));
ddmFormFields.add(createTextDDMFormField("TextField"));
ddmFormFields.add(createHTMLDDMFormField("HTMLField"));
return ddmFormFields;
}
protected DDMFormField createHTMLDDMFormField(String name) {
DDMFormField ddmFormField = new DDMFormField(name, "ddm-text-html");
ddmFormField.setDataType("html");
ddmFormField.setFieldNamespace("ddm");
ddmFormField.setIndexType("text");
ddmFormField.setLabel(createHTMLDDMFormFieldLabel());
ddmFormField.setLocalizable(true);
ddmFormField.setPredefinedValue(
createHTMLDDMFormFieldPredefinedValue());
ddmFormField.setReadOnly(false);
ddmFormField.setRepeatable(false);
ddmFormField.setRequired(false);
ddmFormField.setShowLabel(true);
ddmFormField.setTip(createHTMLDDMFormFieldTip());
return ddmFormField;
}
protected LocalizedValue createHTMLDDMFormFieldLabel() {
LocalizedValue label = new LocalizedValue();
label.addString(LocaleUtil.BRAZIL, "HTML");
label.addString(LocaleUtil.US, "HTML");
return label;
}
protected LocalizedValue createHTMLDDMFormFieldPredefinedValue() {
LocalizedValue predefinedValue = new LocalizedValue();
predefinedValue.addString(LocaleUtil.BRAZIL, "");
predefinedValue.addString(LocaleUtil.US, "");
return predefinedValue;
}
protected LocalizedValue createHTMLDDMFormFieldTip() {
LocalizedValue predefinedValue = new LocalizedValue();
predefinedValue.addString(LocaleUtil.BRAZIL, "Dica");
predefinedValue.addString(LocaleUtil.US, "Tip");
return predefinedValue;
}
protected DDMFormField createNestedDDMFormFields(
String parentName, String childName) {
DDMFormField parentDDMFormField = createTextDDMFormField(parentName);
List<DDMFormField> nestedDDMFormFields = new ArrayList<>();
nestedDDMFormFields.add(createSelectDDMFormField(childName));
parentDDMFormField.setNestedDDMFormFields(nestedDDMFormFields);
return parentDDMFormField;
}
protected void createNotEmptyValidation(DDMFormField ddmFormField) {
DDMFormFieldValidation ddmFormFieldValidation =
new DDMFormFieldValidation();
ddmFormFieldValidation.setErrorMessage(
"Field " + ddmFormField.getName() + " must not be empty.");
ddmFormFieldValidation.setExpression(
"!" + ddmFormField.getName() + ".isEmpty()");
ddmFormField.setDDMFormFieldValidation(ddmFormFieldValidation);
}
protected DDMFormField createRadioDDMFormField(String name) {
DDMFormField ddmFormField = new DDMFormField(name, "radio");
ddmFormField.setDataType("string");
ddmFormField.setDDMFormFieldOptions(createDDMFormFieldOptions());
ddmFormField.setLocalizable(false);
ddmFormField.setReadOnly(false);
ddmFormField.setRepeatable(false);
ddmFormField.setRequired(true);
ddmFormField.setShowLabel(false);
ddmFormField.setVisibilityExpression("false");
createNotEmptyValidation(ddmFormField);
return ddmFormField;
}
protected DDMFormField createSelectDDMFormField(String name) {
DDMFormField ddmFormField = new DDMFormField(name, "select");
ddmFormField.setDataType("string");
ddmFormField.setLocalizable(false);
ddmFormField.setIndexType("");
ddmFormField.setMultiple(true);
ddmFormField.setReadOnly(false);
ddmFormField.setRepeatable(false);
ddmFormField.setRequired(false);
ddmFormField.setShowLabel(true);
ddmFormField.setVisibilityExpression("true");
createNotEmptyValidation(ddmFormField);
DDMFormFieldOptions ddmFormFieldOptions = createDDMFormFieldOptions();
ddmFormField.setDDMFormFieldOptions(ddmFormFieldOptions);
return ddmFormField;
}
protected DDMFormField createTextDDMFormField(String name) {
DDMFormField ddmFormField = new DDMFormField(name, "text");
ddmFormField.setDataType("string");
ddmFormField.setIndexType("keyword");
ddmFormField.setLabel(createTextDDMFormFieldLabel());
ddmFormField.setLocalizable(false);
ddmFormField.setPredefinedValue(
createTextDDMFormFieldPredefinedValue());
ddmFormField.setReadOnly(false);
ddmFormField.setRepeatable(true);
ddmFormField.setRequired(false);
ddmFormField.setShowLabel(true);
ddmFormField.setVisibilityExpression("true");
createNotEmptyValidation(ddmFormField);
return ddmFormField;
}
protected LocalizedValue createTextDDMFormFieldLabel() {
LocalizedValue label = new LocalizedValue();
label.addString(LocaleUtil.BRAZIL, "Texto");
label.addString(LocaleUtil.US, "Text");
return label;
}
protected LocalizedValue createTextDDMFormFieldPredefinedValue() {
LocalizedValue predefinedValue = new LocalizedValue();
predefinedValue.addString(LocaleUtil.BRAZIL, "Exemplo");
predefinedValue.addString(LocaleUtil.US, "Example");
return predefinedValue;
}
}