Author: mthl
Date: Fri Jul 19 21:50:14 2019 New Revision: 1863437 URL: http://svn.apache.org/viewvc?rev=1863437&view=rev Log: Implemented: Add unit tests for ‘UtilHttp#makeParamValueFromComposite’ (OFBIZ-11138) The implementation has been adapted to facilitate mocking. Modified: ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilHttp.java ofbiz/ofbiz-framework/trunk/framework/base/src/test/java/org/apache/ofbiz/base/util/UtilHttpTest.java Modified: ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilHttp.java URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilHttp.java?rev=1863437&r1=1863436&r2=1863437&view=diff ============================================================================== --- ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilHttp.java (original) +++ ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilHttp.java Fri Jul 19 21:50:14 2019 @@ -1401,21 +1401,19 @@ public final class UtilHttp { // collect the composite fields into a map Map<String, String> data = new HashMap<>(); - for (Enumeration<String> names = UtilGenerics.cast(request.getParameterNames()); names.hasMoreElements();) { - String name = names.nextElement(); + request.getParameterMap().forEach((name, values) -> { if (!name.startsWith(prefix + COMPOSITE_DELIMITER)) { - continue; + return; } - // extract the suffix of the composite name String suffix = name.substring(name.indexOf(COMPOSITE_DELIMITER) + COMPOSITE_DELIMITER_LENGTH); // and the value of this parameter - String value = request.getParameter(name); + String value = values[0]; // key = suffix, value = parameter data data.put(suffix, value); - } + }); if (Debug.verboseOn()) { Debug.logVerbose("Creating composite type with parameter data: " + data.toString(), module); } // handle recomposition of data into the compositeType Modified: ofbiz/ofbiz-framework/trunk/framework/base/src/test/java/org/apache/ofbiz/base/util/UtilHttpTest.java URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/base/src/test/java/org/apache/ofbiz/base/util/UtilHttpTest.java?rev=1863437&r1=1863436&r2=1863437&view=diff ============================================================================== --- ofbiz/ofbiz-framework/trunk/framework/base/src/test/java/org/apache/ofbiz/base/util/UtilHttpTest.java (original) +++ ofbiz/ofbiz-framework/trunk/framework/base/src/test/java/org/apache/ofbiz/base/util/UtilHttpTest.java Fri Jul 19 21:50:14 2019 @@ -21,11 +21,16 @@ package org.apache.ofbiz.base.util; import static org.apache.ofbiz.base.util.UtilHttp.getPathInfoOnlyParameterMap; import static org.hamcrest.Matchers.*; import static org.hamcrest.Matchers.hasEntry; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertThat; import static org.mockito.Mockito.when; +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.time.Month; import java.util.Arrays; import java.util.Collections; +import java.util.Locale; import java.util.Map; import java.util.function.Predicate; @@ -122,4 +127,54 @@ public class UtilHttpTest { not(hasEntry("foo", "1")), hasEntry("bar", Arrays.asList("2", "3")))); } + + @Test + public void basicMakeParamValueFromComposite() { + when(req.getParameter("meetingDate_c_compositeType")).thenReturn("Timestamp"); + when(req.getParameterMap()).thenReturn(UtilMisc.toMap( + "meetingDate_c_date", new String[] {"2019-07-14"}, + "meetingDate_c_hour", new String[] {"13"}, + "meetingDate_c_minutes", new String[] {"8"})); + assertThat(UtilHttp.makeParamValueFromComposite(req, "meetingDate", Locale.ROOT), + equalTo(Timestamp.valueOf(LocalDateTime.of(2019, Month.JULY, 14, 13, 8)))); + } + + @Test + public void emptyTypeMakeParamValueFromComposite() { + when(req.getParameter("meetingDate_c_compositeType")).thenReturn(null); + when(req.getParameterMap()).thenReturn(UtilMisc.toMap( + "meetingDate_c_date", new String[] {"2019-07-14"}, + "meetingDate_c_hour", new String[] {"13"}, + "meetingDate_c_minutes", new String[] {"8"})); + assertNull(UtilHttp.makeParamValueFromComposite(req, "meetingDate", Locale.ROOT)); + } + + @Test + public void ampmMakeParamValueFromComposite() { + when(req.getParameter("meetingDate_c_compositeType")).thenReturn("Timestamp"); + + when(req.getParameterMap()).thenReturn(UtilMisc.toMap( + "meetingDate_c_date", new String[] {"2019-07-14"}, + "meetingDate_c_hour", new String[] {"12"}, + "meetingDate_c_minutes", new String[] {"8"}, + "meetingDate_c_ampm", new String[] {"AM"})); + assertThat(UtilHttp.makeParamValueFromComposite(req, "meetingDate", Locale.ROOT), + equalTo(Timestamp.valueOf(LocalDateTime.of(2019, Month.JULY, 14, 0, 8)))); + + when(req.getParameterMap()).thenReturn(UtilMisc.toMap( + "meetingDate_c_date", new String[] {"2019-07-14"}, + "meetingDate_c_hour", new String[] {"8"}, + "meetingDate_c_minutes", new String[] {"8"}, + "meetingDate_c_ampm", new String[] {"PM"})); + assertThat(UtilHttp.makeParamValueFromComposite(req, "meetingDate", Locale.ROOT), + equalTo(Timestamp.valueOf(LocalDateTime.of(2019, Month.JULY, 14, 20, 8)))); + + when(req.getParameterMap()).thenReturn(UtilMisc.toMap( + "meetingDate_c_date", new String[] {"2019-07-14"}, + "meetingDate_c_hour", new String[] {"18"}, + "meetingDate_c_minutes", new String[] {"8"}, + "meetingDate_c_ampm", new String[] {"PM"})); + assertThat(UtilHttp.makeParamValueFromComposite(req, "meetingDate", Locale.ROOT), + equalTo(Timestamp.valueOf(LocalDateTime.of(2019, Month.JULY, 14, 18, 8)))); + } } |
Free forum by Nabble | Edit this page |