diff --git a/spring-test/src/main/java/org/springframework/test/util/JsonPathExpectationsHelper.java b/spring-test/src/main/java/org/springframework/test/util/JsonPathExpectationsHelper.java index 7f0cc47d0fc..bc79ec6cfae 100644 --- a/spring-test/src/main/java/org/springframework/test/util/JsonPathExpectationsHelper.java +++ b/spring-test/src/main/java/org/springframework/test/util/JsonPathExpectationsHelper.java @@ -238,9 +238,6 @@ public class JsonPathExpectationsHelper { Object value = evaluateJsonPath(content); String reason = "No value for JSON path \"" + this.expression + "\""; assertTrue(reason, value != null); - if (List.class.isInstance(value)) { - assertTrue(reason, !((List) value).isEmpty()); - } return value; } diff --git a/spring-test/src/test/java/org/springframework/test/util/JsonPathExpectationsHelperTests.java b/spring-test/src/test/java/org/springframework/test/util/JsonPathExpectationsHelperTests.java index f58c82ab8ca..eb1310a8e66 100644 --- a/spring-test/src/test/java/org/springframework/test/util/JsonPathExpectationsHelperTests.java +++ b/spring-test/src/test/java/org/springframework/test/util/JsonPathExpectationsHelperTests.java @@ -106,6 +106,11 @@ public class JsonPathExpectationsHelperTests { new JsonPathExpectationsHelper("$.arr").assertValueIsArray(CONTENT); } + @Test + public void assertValueIsArrayForAnEmptyArray() throws Exception { + new JsonPathExpectationsHelper("$.emptyArray").assertValueIsArray(CONTENT); + } + @Test public void assertValueIsArrayForNonArray() throws Exception { exception.expect(AssertionError.class); @@ -117,6 +122,11 @@ public class JsonPathExpectationsHelperTests { new JsonPathExpectationsHelper("$.colorMap").assertValueIsMap(CONTENT); } + @Test + public void assertValueIsMapForAnEmptyMap() throws Exception { + new JsonPathExpectationsHelper("$.emptyMap").assertValueIsMap(CONTENT); + } + @Test public void assertValueIsMapForNonMap() throws Exception { exception.expect(AssertionError.class); diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/result/JsonPathResultMatchersTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/result/JsonPathResultMatchersTests.java index 3c00b5a23d8..984b74c2f80 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/result/JsonPathResultMatchersTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/result/JsonPathResultMatchersTests.java @@ -32,7 +32,7 @@ import org.springframework.test.web.servlet.StubMvcResult; */ public class JsonPathResultMatchersTests { - private static final String RESPONSE_CONTENT = "{\"foo\": \"bar\", \"qux\": [\"baz\"], \"emptyArray\": [], \"icanhaz\": true, \"howmanies\": 5, \"cheeseburger\": {\"pickles\": true} }"; + private static final String RESPONSE_CONTENT = "{\"foo\": \"bar\", \"qux\": [\"baz\"], \"emptyArray\": [], \"icanhaz\": true, \"howmanies\": 5, \"cheeseburger\": {\"pickles\": true}, \"emptyMap\": {} }"; private static final StubMvcResult stubMvcResult; @@ -93,6 +93,10 @@ public class JsonPathResultMatchersTests { public void isArray() throws Exception { new JsonPathResultMatchers("$.qux").isArray().match(stubMvcResult); } + + @Test + public void isArrayForAnEmptyArray() throws Exception { + new JsonPathResultMatchers("$.emptyArray").isArray().match(stubMvcResult); } @Test(expected = AssertionError.class) @@ -100,6 +104,21 @@ public class JsonPathResultMatchersTests { new JsonPathResultMatchers("$.bar").isArray().match(stubMvcResult); } + @Test + public void isMap() throws Exception { + new JsonPathResultMatchers("$.cheeseburger").isMap().match(stubMvcResult); + } + + @Test + public void isMapForAnEmptyMap() throws Exception { + new JsonPathResultMatchers("$.emptyMap").isMap().match(stubMvcResult); + } + + @Test(expected = AssertionError.class) + public void isMapNoMatch() throws Exception { + new JsonPathResultMatchers("$.foo").isMap().match(stubMvcResult); + } + @Test public void isBoolean() throws Exception { new JsonPathResultMatchers("$.icanhaz").isBoolean().match(stubMvcResult); @@ -120,16 +139,6 @@ public class JsonPathResultMatchersTests { new JsonPathResultMatchers("$.foo").isNumber().match(stubMvcResult); } - @Test - public void isMap() throws Exception { - new JsonPathResultMatchers("$.cheeseburger").isMap().match(stubMvcResult); - } - - @Test(expected = AssertionError.class) - public void isMapNoMatch() throws Exception { - new JsonPathResultMatchers("$.foo").isMap().match(stubMvcResult); - } - @Test public void isString() throws Exception { new JsonPathResultMatchers("$.foo").isString().match(stubMvcResult);