/** * 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.lists.service.impl; import static com.liferay.portal.kernel.test.util.RandomTestUtil.randomBoolean; import static com.liferay.portal.kernel.test.util.RandomTestUtil.randomInt; import static com.liferay.portal.kernel.util.StringUtil.randomString; import com.liferay.dynamic.data.mapping.storage.Field; import com.liferay.dynamic.data.mapping.storage.Fields; import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Set; import org.junit.Assert; import org.junit.Test; /** * @author Marcellus Tavares */ public class DDLRecordLocalServiceImplTest { @Test public void testToFieldWithBoolean() throws Exception { boolean fieldValue = randomBoolean(); Field field = toField(fieldValue); assertFieldValues( Arrays.asList(fieldValue), field.getValues(Locale.US)); } @Test public void testToFieldWithBooleanArray() throws Exception { boolean[] fieldValues = new boolean[] {randomBoolean(), randomBoolean(), randomBoolean()}; Field field = toField(fieldValues); assertFieldValues(toList(fieldValues), field.getValues(Locale.US)); } @Test public void testToFieldWithBooleanList() throws Exception { List<Serializable> fieldValues = new ArrayList<>(); fieldValues.add(randomBoolean()); fieldValues.add(randomBoolean()); Field field = toField((Serializable)fieldValues); assertFieldValues(fieldValues, field.getValues(Locale.US)); } @Test public void testToFieldWithBooleanSet() throws Exception { Set<Serializable> fieldValues = new HashSet<>(); fieldValues.add(randomBoolean()); fieldValues.add(randomBoolean()); Field field = toField((Serializable)fieldValues); assertFieldValues(fieldValues, field.getValues(Locale.US)); } @Test public void testToFieldWithInteger() throws Exception { int fieldValue = randomInt(); Field field = toField(fieldValue); assertFieldValues( Arrays.asList(fieldValue), field.getValues(Locale.US)); } @Test public void testToFieldWithIntegerArray() throws Exception { int[] fieldValues = new int[] {randomInt(), randomInt(), randomInt()}; Field field = toField(fieldValues); assertFieldValues(toList(fieldValues), field.getValues(Locale.US)); } @Test public void testToFieldWithIntegerList() throws Exception { List<Serializable> fieldValues = new ArrayList<>(); fieldValues.add(randomInt()); fieldValues.add(randomInt()); Field field = toField((Serializable)fieldValues); assertFieldValues(fieldValues, field.getValues(Locale.US)); } @Test public void testToFieldWithIntegerSet() throws Exception { Set<Serializable> fieldValues = new HashSet<>(); fieldValues.add(randomInt()); fieldValues.add(randomInt()); Field field = toField((Serializable)fieldValues); assertFieldValues(fieldValues, field.getValues(Locale.US)); } @Test public void testToFieldWithString() throws Exception { String fieldValue = randomString(); Field field = toField(fieldValue); assertFieldValues( Arrays.asList(fieldValue), field.getValues(Locale.US)); } @Test public void testToFieldWithStringArray() throws Exception { String[] fieldValues = {randomString(), randomString(), randomString()}; Field field = toField(fieldValues); assertFieldValues(toList(fieldValues), field.getValues(Locale.US)); } @Test public void testToFieldWithStringList() throws Exception { List<Serializable> fieldValues = new ArrayList<>(); fieldValues.add(randomString()); fieldValues.add(randomString()); Field field = toField((Serializable)fieldValues); assertFieldValues(fieldValues, field.getValues(Locale.US)); } @Test public void testToFieldWithStringSet() throws Exception { Set<Serializable> fieldValues = new HashSet<>(); fieldValues.add(randomString()); fieldValues.add(randomString()); Field field = toField((Serializable)fieldValues); assertFieldValues(fieldValues, field.getValues(Locale.US)); } protected void assertFieldValues( Collection<Serializable> expectedValues, List<Serializable> actualValues) { Assert.assertEquals( actualValues.toString(), expectedValues.size(), actualValues.size()); int i = 0; for (Serializable expectedValue : expectedValues) { Assert.assertEquals(expectedValue, actualValues.get(i++)); } } protected void assertToFields(Collection<Serializable> fieldValues) throws Exception { Map<String, Serializable> fieldsMap = new HashMap<>(); String fieldName = randomString(); fieldsMap.put(fieldName, (Serializable)fieldValues); Fields fields = _recordLocalServiceImpl.toFields( 0, fieldsMap, Locale.US, Locale.US); Field field = fields.get(fieldName); assertFieldValues(fieldValues, field.getValues(Locale.US)); } protected void assertToFields(Serializable[] fieldValues) throws Exception { Map<String, Serializable> fieldsMap = new HashMap<>(); String fieldName = randomString(); fieldsMap.put(fieldName, (Serializable)fieldValues); Fields fields = _recordLocalServiceImpl.toFields( 0, fieldsMap, Locale.US, Locale.US); Field field = fields.get(fieldName); assertFieldValues( Arrays.asList(fieldValues), field.getValues(Locale.US)); } protected Field toField(Serializable fieldValue) throws Exception { Map<String, Serializable> fieldsMap = new HashMap<>(); String fieldName = randomString(); fieldsMap.put(fieldName, fieldValue); Fields fields = _recordLocalServiceImpl.toFields( 0, fieldsMap, Locale.US, Locale.US); return fields.get(fieldName); } protected List<Serializable> toList(boolean[] fieldValues) { List<Serializable> fieldValuesList = new ArrayList<>(); for (boolean fieldValue : fieldValues) { fieldValuesList.add(fieldValue); } return fieldValuesList; } protected List<Serializable> toList(int[] fieldValues) { List<Serializable> fieldValuesList = new ArrayList<>(); for (int fieldValue : fieldValues) { fieldValuesList.add(fieldValue); } return fieldValuesList; } protected List<Serializable> toList(String[] fieldValues) { List<Serializable> fieldValuesList = new ArrayList<>(); for (String fieldValue : fieldValues) { fieldValuesList.add(fieldValue); } return fieldValuesList; } private final DDLRecordLocalServiceImpl _recordLocalServiceImpl = new DDLRecordLocalServiceImpl(); }