001    /**
002     * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portlet.dynamicdatamapping.util.test;
016    
017    import com.liferay.portal.kernel.util.LocaleUtil;
018    import com.liferay.portlet.dynamicdatamapping.model.DDMForm;
019    import com.liferay.portlet.dynamicdatamapping.model.DDMFormField;
020    import com.liferay.portlet.dynamicdatamapping.model.LocalizedValue;
021    
022    import java.util.LinkedHashSet;
023    import java.util.List;
024    import java.util.Locale;
025    import java.util.Set;
026    
027    /**
028     * @author Marcellus Tavares
029     */
030    public class DDMFormTestUtil {
031    
032            public static void addTextDDMFormFields(
033                    DDMForm ddmForm, String... fieldNames) {
034    
035                    List<DDMFormField> ddmFormFields = ddmForm.getDDMFormFields();
036    
037                    for (String fieldName : fieldNames) {
038                            ddmFormFields.add(createLocalizableTextDDMFormField(fieldName));
039                    }
040            }
041    
042            public static Set<Locale> createAvailableLocales(Locale... locales) {
043                    Set<Locale> availableLocales = new LinkedHashSet<>();
044    
045                    for (Locale locale : locales) {
046                            availableLocales.add(locale);
047                    }
048    
049                    return availableLocales;
050            }
051    
052            public static DDMForm createDDMForm(
053                    Set<Locale> availableLocales, Locale defaultLocale) {
054    
055                    DDMForm ddmForm = new DDMForm();
056    
057                    ddmForm.setAvailableLocales(availableLocales);
058                    ddmForm.setDefaultLocale(defaultLocale);
059    
060                    return ddmForm;
061            }
062    
063            public static DDMForm createDDMForm(String... fieldNames) {
064                    DDMForm ddmForm = createDDMForm(
065                            createAvailableLocales(LocaleUtil.US), LocaleUtil.US);
066    
067                    addTextDDMFormFields(ddmForm, fieldNames);
068    
069                    return ddmForm;
070            }
071    
072            public static DDMFormField createDDMFormField(
073                    String name, String label, String type, String dataType,
074                    boolean localizable, boolean repeatable, boolean required) {
075    
076                    DDMFormField ddmFormField = new DDMFormField(name, type);
077    
078                    ddmFormField.setDataType(dataType);
079                    ddmFormField.setLocalizable(localizable);
080                    ddmFormField.setRepeatable(repeatable);
081                    ddmFormField.setRequired(required);
082    
083                    LocalizedValue localizedValue = ddmFormField.getLabel();
084    
085                    localizedValue.addString(LocaleUtil.US, label);
086    
087                    return ddmFormField;
088            }
089    
090            public static DDMFormField createLocalizableTextDDMFormField(String name) {
091                    return createTextDDMFormField(name, true, false, false);
092            }
093    
094            public static DDMFormField createTextDDMFormField(
095                    String name, boolean localizable, boolean repeatable,
096                    boolean required) {
097    
098                    return createDDMFormField(
099                            name, name, "text", "string", localizable, repeatable, required);
100            }
101    
102    }