/** * 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.type.grid.internal; import com.liferay.dynamic.data.mapping.model.DDMFormField; import com.liferay.dynamic.data.mapping.model.DDMFormFieldOptions; import com.liferay.dynamic.data.mapping.model.UnlocalizedValue; import com.liferay.dynamic.data.mapping.storage.DDMFormFieldValue; import com.liferay.dynamic.data.mapping.test.util.DDMFormTestUtil; import com.liferay.dynamic.data.mapping.test.util.DDMFormValuesTestUtil; import com.liferay.portal.json.JSONFactoryImpl; import com.liferay.portal.kernel.json.JSONFactory; import com.liferay.portal.kernel.util.LocaleUtil; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.powermock.api.mockito.PowerMockito; import org.powermock.modules.junit4.PowerMockRunner; /** * @author Pedro Queiroz */ @RunWith(PowerMockRunner.class) public class GridDDMFormFieldValueAccessorTest extends PowerMockito { @Before public void setUp() throws Exception { setUpGridDDMFormFieldValueAccessor(); } @Test public void testEmpty() { DDMFormField ddmFormField = DDMFormTestUtil.createDDMFormField( "grid0", "Grid", "grid", "string", false, false, true); DDMFormFieldOptions ddmFormFieldOptions = new DDMFormFieldOptions(); ddmFormFieldOptions.addOptionLabel("row1", LocaleUtil.US, "Row 1"); ddmFormFieldOptions.addOptionLabel("row2", LocaleUtil.US, "Row 2"); ddmFormField.setProperty("rows", ddmFormFieldOptions); DDMFormFieldValue ddmFormFieldValue = DDMFormValuesTestUtil.createDDMFormFieldValue( "Grid", new UnlocalizedValue("{\"row1\":\"column1\"}")); Assert.assertTrue( _gridDDMFormFieldValueAccessor.isEmpty( ddmFormField, ddmFormFieldValue.getValue(), LocaleUtil.US)); } @Test public void testGetGridValue() { DDMFormFieldValue ddmFormFieldValue = DDMFormValuesTestUtil.createDDMFormFieldValue( "Grid", new UnlocalizedValue("{\"RowValue\":\"ColumnValue\"}")); Assert.assertEquals( "{\"RowValue\":\"ColumnValue\"}", _gridDDMFormFieldValueAccessor.getValue( ddmFormFieldValue, LocaleUtil.US).toString()); } @Test public void testNotEmpty() { DDMFormField ddmFormField = DDMFormTestUtil.createDDMFormField( "grid0", "Grid", "grid", "string", false, false, true); DDMFormFieldOptions ddmFormFieldOptions = new DDMFormFieldOptions(); ddmFormFieldOptions.addOptionLabel("row1", LocaleUtil.US, "Row 1"); ddmFormFieldOptions.addOptionLabel("row2", LocaleUtil.US, "Row 2"); ddmFormField.setProperty("rows", ddmFormFieldOptions); DDMFormFieldValue ddmFormFieldValue = DDMFormValuesTestUtil.createDDMFormFieldValue( "Grid", new UnlocalizedValue( "{\"row1\":\"column1\",\"row2\":\"column1\"}")); Assert.assertFalse( _gridDDMFormFieldValueAccessor.isEmpty( ddmFormField, ddmFormFieldValue.getValue(), LocaleUtil.US)); } protected void setUpGridDDMFormFieldValueAccessor() throws Exception { _gridDDMFormFieldValueAccessor = new GridDDMFormFieldValueAccessor(); field( GridDDMFormFieldValueAccessor.class, "jsonFactory" ).set( _gridDDMFormFieldValueAccessor, _jsonFactory ); } private GridDDMFormFieldValueAccessor _gridDDMFormFieldValueAccessor; private final JSONFactory _jsonFactory = new JSONFactoryImpl(); }