You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2023/11/09 12:49:01 UTC
(sling-org-apache-sling-testing-hamcrest) 03/03: SLING-12136 - Removed code related to Dictionary that caused infinite loop.
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-hamcrest.git
commit 608c82ecbcb06d0de135e9db7e37adb38b1f7387
Author: Rob McDougall <rm...@rogers.com>
AuthorDate: Mon Nov 6 18:17:44 2023 -0500
SLING-12136 - Removed code related to Dictionary that caused infinite loop.
Improved the code coverage of MapUtilTest.
Clearly no-one was using the Dictionary branch (or else they would have
experienced a Stack Overflow error), so there shouldn't be any backwards
compatibility issues.
---
.../java/org/apache/sling/hamcrest/MapUtil.java | 10 ++----
.../org/apache/sling/hamcrest/MapUtilTest.java | 40 ++++++++++++++++++++--
2 files changed, 39 insertions(+), 11 deletions(-)
diff --git a/src/main/java/org/apache/sling/hamcrest/MapUtil.java b/src/main/java/org/apache/sling/hamcrest/MapUtil.java
index a391c4e..e09339e 100644
--- a/src/main/java/org/apache/sling/hamcrest/MapUtil.java
+++ b/src/main/java/org/apache/sling/hamcrest/MapUtil.java
@@ -20,7 +20,6 @@ package org.apache.sling.hamcrest;
import java.util.Arrays;
import java.util.Collections;
-import java.util.Dictionary;
import java.util.HashMap;
import java.util.Map;
@@ -43,13 +42,8 @@ final class MapUtil {
if (args == null || args.length == 0) {
return Collections.emptyMap();
}
- if (args.length == 1) {
- if (args[0] instanceof Map) {
- return (Map<String, Object>)args[0];
- }
- else if (args[0] instanceof Dictionary) {
- return toMap((Dictionary<String, Object>)args[0]);
- }
+ if (args.length == 1 && args[0] instanceof Map) {
+ return (Map<String, Object>)args[0];
}
if (args.length % 2 != 0) {
throw new IllegalArgumentException("args must be an even number of name/values:" + Arrays.asList(args));
diff --git a/src/test/java/org/apache/sling/hamcrest/MapUtilTest.java b/src/test/java/org/apache/sling/hamcrest/MapUtilTest.java
index 9257fbf..6ea1a34 100644
--- a/src/test/java/org/apache/sling/hamcrest/MapUtilTest.java
+++ b/src/test/java/org/apache/sling/hamcrest/MapUtilTest.java
@@ -20,6 +20,7 @@ package org.apache.sling.hamcrest;
import static org.junit.Assert.assertEquals;
+import java.util.Collections;
import java.util.Map;
import org.junit.Test;
@@ -28,11 +29,44 @@ import com.google.common.collect.ImmutableMap;
public class MapUtilTest {
- @Test
+ private static final ImmutableMap<String, Object> EXPECTED_MAP = ImmutableMap.<String, Object>of("param1", "var1", "param2", 123, "param3", true);
+
+ @Test
public void testMapObjectVarargs() {
Map<String, Object> convertedMap = MapUtil.toMap("param1", "var1", "param2", 123, "param3", true);
- assertEquals(ImmutableMap.<String, Object>of("param1", "var1", "param2", 123, "param3", true), convertedMap);
+ assertEquals(EXPECTED_MAP, convertedMap);
+ }
+
+ @Test
+ public void testMapObjectMap() {
+ Map<String, Object> convertedMap = MapUtil.toMap(EXPECTED_MAP);
+
+ assertEquals(EXPECTED_MAP, convertedMap);
+ }
+
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testMapObjectVarArgs_NotMap() {
+ MapUtil.toMap("param1", "var1", "param2", 123, "param3");
+ }
+
+ @Test
+ public void testMapObjectVarargs_EmptyArgs() {
+ Map<String, Object> convertedMap = MapUtil.toMap();
+
+ assertEquals(Collections.emptyMap(), convertedMap);
+ }
+
+ @Test
+ public void testMapObjectVarargs_Null() {
+ Map<String, Object> convertedMap = MapUtil.toMap((Object[])null);
+
+ assertEquals(Collections.emptyMap(), convertedMap);
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testMapObjectVarArgs_OddNumberOfArgs() {
+ MapUtil.toMap("param1", "var1", "param2", 123, "param3");
}
-
}