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.dynamicdatalists.util.test;
016    
017    import com.liferay.portal.kernel.util.LocaleUtil;
018    import com.liferay.portal.kernel.util.StringUtil;
019    import com.liferay.portal.service.ServiceContext;
020    import com.liferay.portal.util.test.TestPropsValues;
021    import com.liferay.portlet.dynamicdatamapping.model.DDMForm;
022    import com.liferay.portlet.dynamicdatamapping.model.DDMFormField;
023    import com.liferay.portlet.dynamicdatamapping.model.LocalizedValue;
024    import com.liferay.portlet.dynamicdatamapping.model.UnlocalizedValue;
025    import com.liferay.portlet.dynamicdatamapping.model.Value;
026    import com.liferay.portlet.dynamicdatamapping.storage.DDMFormFieldValue;
027    import com.liferay.portlet.dynamicdatamapping.storage.DDMFormValues;
028    
029    import java.util.LinkedHashSet;
030    import java.util.Locale;
031    import java.util.Set;
032    
033    /**
034     * @author Marcellus Tavares
035     * @author Andr?? de Oliveira
036     */
037    public class DDLRecordTestUtil {
038    
039            public static Set<Locale> createAvailableLocales(Locale... locales) {
040                    Set<Locale> availableLocales = new LinkedHashSet<Locale>();
041    
042                    for (Locale locale : locales) {
043                            availableLocales.add(locale);
044                    }
045    
046                    return availableLocales;
047            }
048    
049            public static DDMForm createDDMForm(
050                    Set<Locale> availableLocales, Locale defaultLocale) {
051    
052                    DDMForm ddmForm = new DDMForm();
053    
054                    ddmForm.setAvailableLocales(availableLocales);
055                    ddmForm.setDefaultLocale(defaultLocale);
056    
057                    return ddmForm;
058            }
059    
060            public static DDMFormField createDDMFormField(
061                    String name, String label, String type, String dataType,
062                    boolean localizable, boolean repeatable, boolean required) {
063    
064                    DDMFormField ddmFormField = new DDMFormField(name, type);
065    
066                    ddmFormField.setDataType(dataType);
067                    ddmFormField.setLocalizable(localizable);
068                    ddmFormField.setRepeatable(repeatable);
069                    ddmFormField.setRequired(required);
070    
071                    LocalizedValue localizedValue = ddmFormField.getLabel();
072    
073                    localizedValue.addString(LocaleUtil.US, label);
074    
075                    return ddmFormField;
076            }
077    
078            public static DDMFormFieldValue createDDMFormFieldValue(
079                    String name, Value value) {
080    
081                    DDMFormFieldValue ddmFormFieldValue = new DDMFormFieldValue();
082    
083                    ddmFormFieldValue.setInstanceId(StringUtil.randomString());
084                    ddmFormFieldValue.setName(name);
085                    ddmFormFieldValue.setValue(value);
086    
087                    return ddmFormFieldValue;
088            }
089    
090            public static DDMFormValues createDDMFormValues(
091                    DDMForm ddmForm, Set<Locale> availableLocales, Locale defaultLocale) {
092    
093                    DDMFormValues ddmFormValues = new DDMFormValues(ddmForm);
094    
095                    ddmFormValues.setAvailableLocales(availableLocales);
096                    ddmFormValues.setDefaultLocale(defaultLocale);
097    
098                    return ddmFormValues;
099            }
100    
101            public static DDMFormFieldValue createLocalizedTextDDMFormFieldValue(
102                    String name, String enValue) {
103    
104                    Value localizedValue = new LocalizedValue(LocaleUtil.US);
105    
106                    localizedValue.addString(LocaleUtil.US, enValue);
107    
108                    return createTextDDMFormFieldValue(name, localizedValue);
109            }
110    
111            public static DDMFormFieldValue createTextDDMFormFieldValue(
112                    String name, Value value) {
113    
114                    DDMFormFieldValue ddmFormFieldValue = new DDMFormFieldValue();
115    
116                    ddmFormFieldValue.setInstanceId(StringUtil.randomString());
117                    ddmFormFieldValue.setName(name);
118                    ddmFormFieldValue.setValue(value);
119    
120                    return ddmFormFieldValue;
121            }
122    
123            public static DDMFormFieldValue createUnlocalizedTextDDMFormFieldValue(
124                    String name, String value) {
125    
126                    return createTextDDMFormFieldValue(name, new UnlocalizedValue(value));
127            }
128    
129            public static String getBasePath() {
130                    return "com/liferay/portlet/dynamicdatalists/dependencies/";
131            }
132    
133            public static ServiceContext getServiceContext(int workflowAction)
134                    throws Exception {
135    
136                    ServiceContext serviceContext = new ServiceContext();
137    
138                    serviceContext.setAddGroupPermissions(true);
139                    serviceContext.setAddGuestPermissions(true);
140                    serviceContext.setUserId(TestPropsValues.getUserId());
141                    serviceContext.setWorkflowAction(workflowAction);
142    
143                    return serviceContext;
144            }
145    
146            public static String read(Class<?> testClass, String fileName)
147                    throws Exception {
148    
149                    return StringUtil.read(
150                            testClass.getClassLoader(), getBasePath() + fileName);
151            }
152    
153    }