Introduce empty & non-empty JsonPath matchers
This commit introduces new `isEmpty()` and `isNotEmpty()` methods in `JsonPathResultMatchers` and `JsonPathRequestMatchers` which delegate to the new `assertValueIsEmpty()` and `assertValueIsNotEmpty()` methods in `JsonPathExpectationsHelper`, respectively. Issue: SPR-13352
This commit is contained in:
		
							parent
							
								
									4799668a98
								
							
						
					
					
						commit
						7a17abe448
					
				|  | @ -25,7 +25,9 @@ import java.util.Map; | |||
| import org.hamcrest.Matcher; | ||||
| 
 | ||||
| import org.springframework.util.Assert; | ||||
| import org.springframework.util.ObjectUtils; | ||||
| import org.springframework.util.ReflectionUtils; | ||||
| import org.springframework.util.StringUtils; | ||||
| 
 | ||||
| import com.jayway.jsonpath.InvalidPathException; | ||||
| import com.jayway.jsonpath.JsonPath; | ||||
|  | @ -135,8 +137,7 @@ public class JsonPathExpectationsHelper { | |||
| 	 */ | ||||
| 	public void assertValueIsString(String content) throws ParseException { | ||||
| 		Object value = assertExistsAndReturn(content); | ||||
| 		String reason = "Expected a string at JSON path \"" + this.expression + "\" but found: " + value; | ||||
| 		assertThat(reason, value, instanceOf(String.class)); | ||||
| 		assertThat(failureReason("a string", value), value, instanceOf(String.class)); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
|  | @ -147,8 +148,7 @@ public class JsonPathExpectationsHelper { | |||
| 	 */ | ||||
| 	public void assertValueIsBoolean(String content) throws ParseException { | ||||
| 		Object value = assertExistsAndReturn(content); | ||||
| 		String reason = "Expected a boolean at JSON path \"" + this.expression + "\" but found: " + value; | ||||
| 		assertThat(reason, value, instanceOf(Boolean.class)); | ||||
| 		assertThat(failureReason("a boolean", value), value, instanceOf(Boolean.class)); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
|  | @ -159,8 +159,7 @@ public class JsonPathExpectationsHelper { | |||
| 	 */ | ||||
| 	public void assertValueIsNumber(String content) throws ParseException { | ||||
| 		Object value = assertExistsAndReturn(content); | ||||
| 		String reason = "Expected a number at JSON path \"" + this.expression + "\" but found: " + value; | ||||
| 		assertThat(reason, value, instanceOf(Number.class)); | ||||
| 		assertThat(failureReason("a number", value), value, instanceOf(Number.class)); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
|  | @ -170,8 +169,7 @@ public class JsonPathExpectationsHelper { | |||
| 	 */ | ||||
| 	public void assertValueIsArray(String content) throws ParseException { | ||||
| 		Object value = assertExistsAndReturn(content); | ||||
| 		String reason = "Expected an array at JSON path \"" + this.expression + "\" but found: " + value; | ||||
| 		assertThat(reason, value, instanceOf(List.class)); | ||||
| 		assertThat(failureReason("an array", value), value, instanceOf(List.class)); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
|  | @ -182,8 +180,7 @@ public class JsonPathExpectationsHelper { | |||
| 	 */ | ||||
| 	public void assertValueIsMap(String content) throws ParseException { | ||||
| 		Object value = assertExistsAndReturn(content); | ||||
| 		String reason = "Expected a map at JSON path \"" + this.expression + "\" but found: " + value; | ||||
| 		assertThat(reason, value, instanceOf(Map.class)); | ||||
| 		assertThat(failureReason("a map", value), value, instanceOf(Map.class)); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
|  | @ -214,7 +211,7 @@ public class JsonPathExpectationsHelper { | |||
| 		catch (AssertionError ex) { | ||||
| 			return; | ||||
| 		} | ||||
| 		String reason = "Expected no value at JSON path \"" + this.expression + "\" but found: " + value; | ||||
| 		String reason = failureReason("no value", value); | ||||
| 		if (pathIsIndefinite() && value instanceof List) { | ||||
| 			assertTrue(reason, ((List<?>) value).isEmpty()); | ||||
| 		} | ||||
|  | @ -223,6 +220,35 @@ public class JsonPathExpectationsHelper { | |||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Evaluate the JSON path expression against the supplied {@code content} | ||||
| 	 * and assert that an empty value exists at the given path. | ||||
| 	 * <p>For the semantics of <em>empty</em>, consult the Javadoc for | ||||
| 	 * {@link ObjectUtils#isEmpty(Object)}. | ||||
| 	 * @param content the JSON content | ||||
| 	 */ | ||||
| 	public void assertValueIsEmpty(String content) throws ParseException { | ||||
| 		Object value = evaluateJsonPath(content); | ||||
| 		assertTrue(failureReason("an empty value", value), ObjectUtils.isEmpty(value)); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Evaluate the JSON path expression against the supplied {@code content} | ||||
| 	 * and assert that a non-empty value exists at the given path. | ||||
| 	 * <p>For the semantics of <em>empty</em>, consult the Javadoc for | ||||
| 	 * {@link ObjectUtils#isEmpty(Object)}. | ||||
| 	 * @param content the JSON content | ||||
| 	 */ | ||||
| 	public void assertValueIsNotEmpty(String content) throws ParseException { | ||||
| 		Object value = evaluateJsonPath(content); | ||||
| 		assertTrue(failureReason("a non-empty value", value), !ObjectUtils.isEmpty(value)); | ||||
| 	} | ||||
| 
 | ||||
| 	private String failureReason(String expectedDescription, Object value) { | ||||
| 		return String.format("Expected %s at JSON path \"%s\" but found: %s", expectedDescription, this.expression, | ||||
| 			ObjectUtils.nullSafeToString(StringUtils.quoteIfString(value))); | ||||
| 	} | ||||
| 
 | ||||
| 	private Object evaluateJsonPath(String content) throws ParseException { | ||||
| 		String message = "No value at JSON path \"" + this.expression + "\", exception: "; | ||||
| 		try { | ||||
|  |  | |||
|  | @ -115,6 +115,44 @@ public class JsonPathRequestMatchers { | |||
| 		}; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Evaluate the JSON path expression against the request content and | ||||
| 	 * assert that an empty value exists at the given path. | ||||
| 	 * <p>For the semantics of <em>empty</em>, consult the Javadoc for | ||||
| 	 * {@link org.springframework.util.ObjectUtils#isEmpty(Object)}. | ||||
| 	 * @since 4.2.1 | ||||
| 	 * @see #isNotEmpty() | ||||
| 	 * @see #exists() | ||||
| 	 * @see #doesNotExist() | ||||
| 	 */ | ||||
| 	public RequestMatcher isEmpty() { | ||||
| 		return new AbstractJsonPathRequestMatcher() { | ||||
| 			@Override | ||||
| 			public void matchInternal(MockClientHttpRequest request) throws IOException, ParseException { | ||||
| 				JsonPathRequestMatchers.this.jsonPathHelper.assertValueIsEmpty(request.getBodyAsString()); | ||||
| 			} | ||||
| 		}; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Evaluate the JSON path expression against the request content and | ||||
| 	 * assert that a non-empty value exists at the given path. | ||||
| 	 * <p>For the semantics of <em>empty</em>, consult the Javadoc for | ||||
| 	 * {@link org.springframework.util.ObjectUtils#isEmpty(Object)}. | ||||
| 	 * @since 4.2.1 | ||||
| 	 * @see #isEmpty() | ||||
| 	 * @see #exists() | ||||
| 	 * @see #doesNotExist() | ||||
| 	 */ | ||||
| 	public RequestMatcher isNotEmpty() { | ||||
| 		return new AbstractJsonPathRequestMatcher() { | ||||
| 			@Override | ||||
| 			public void matchInternal(MockClientHttpRequest request) throws IOException, ParseException { | ||||
| 				JsonPathRequestMatchers.this.jsonPathHelper.assertValueIsNotEmpty(request.getBodyAsString()); | ||||
| 			} | ||||
| 		}; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Evaluate the JSON path expression against the request content and | ||||
| 	 * assert that the result is a {@link String}. | ||||
|  |  | |||
|  | @ -116,6 +116,46 @@ public class JsonPathResultMatchers { | |||
| 		}; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Evaluate the JSON path expression against the response content and | ||||
| 	 * assert that an empty value exists at the given path. | ||||
| 	 * <p>For the semantics of <em>empty</em>, consult the Javadoc for | ||||
| 	 * {@link org.springframework.util.ObjectUtils#isEmpty(Object)}. | ||||
| 	 * @since 4.2.1 | ||||
| 	 * @see #isNotEmpty() | ||||
| 	 * @see #exists() | ||||
| 	 * @see #doesNotExist() | ||||
| 	 */ | ||||
| 	public ResultMatcher isEmpty() { | ||||
| 		return new ResultMatcher() { | ||||
| 			@Override | ||||
| 			public void match(MvcResult result) throws Exception { | ||||
| 				String content = result.getResponse().getContentAsString(); | ||||
| 				JsonPathResultMatchers.this.jsonPathHelper.assertValueIsEmpty(content); | ||||
| 			} | ||||
| 		}; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Evaluate the JSON path expression against the response content and | ||||
| 	 * assert that a non-empty value exists at the given path. | ||||
| 	 * <p>For the semantics of <em>empty</em>, consult the Javadoc for | ||||
| 	 * {@link org.springframework.util.ObjectUtils#isEmpty(Object)}. | ||||
| 	 * @since 4.2.1 | ||||
| 	 * @see #isEmpty() | ||||
| 	 * @see #exists() | ||||
| 	 * @see #doesNotExist() | ||||
| 	 */ | ||||
| 	public ResultMatcher isNotEmpty() { | ||||
| 		return new ResultMatcher() { | ||||
| 			@Override | ||||
| 			public void match(MvcResult result) throws Exception { | ||||
| 				String content = result.getResponse().getContentAsString(); | ||||
| 				JsonPathResultMatchers.this.jsonPathHelper.assertValueIsNotEmpty(content); | ||||
| 			} | ||||
| 		}; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Evaluate the JSON path expression against the response content and | ||||
| 	 * assert that the result is a {@link String}. | ||||
|  |  | |||
|  | @ -32,13 +32,15 @@ import static org.hamcrest.CoreMatchers.*; | |||
| public class JsonPathExpectationsHelperTests { | ||||
| 
 | ||||
| 	private static final String CONTENT = "{" + // | ||||
| 			"'str':        'foo',           " + // | ||||
| 			"'num':        5,               " + // | ||||
| 			"'bool':       true,            " + // | ||||
| 			"'arr':        [42],            " + // | ||||
| 			"'emptyArray': [],              " + // | ||||
| 			"'colorMap':   {'red': 'rojo'}, " + // | ||||
| 			"'emptyMap':   {}               " + // | ||||
| 			"'str':         'foo',           " + // | ||||
| 			"'num':         5,               " + // | ||||
| 			"'bool':        true,            " + // | ||||
| 			"'arr':         [42],            " + // | ||||
| 			"'colorMap':    {'red': 'rojo'}, " + // | ||||
| 			"'whitespace':  '    ',          " + // | ||||
| 			"'emptyString': '',              " + // | ||||
| 			"'emptyArray':  [],              " + // | ||||
| 			"'emptyMap':    {}               " + // | ||||
| 	"}"; | ||||
| 
 | ||||
| 	private static final String SIMPSONS = "{ 'familyMembers': [ " + // | ||||
|  | @ -113,8 +115,106 @@ public class JsonPathExpectationsHelperTests { | |||
| 
 | ||||
| 	@Test | ||||
| 	public void doesNotExistForIndefinatePathWithEmptyResults() throws Exception { | ||||
| 		new JsonPathExpectationsHelper("$.familyMembers[?(@.name == 'Dilbert')]").doesNotExist(SIMPSONS); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void assertValueIsEmptyForAnEmptyString() throws Exception { | ||||
| 		new JsonPathExpectationsHelper("$.emptyString").assertValueIsEmpty(CONTENT); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void assertValueIsEmptyForAnEmptyArray() throws Exception { | ||||
| 		new JsonPathExpectationsHelper("$.emptyArray").assertValueIsEmpty(CONTENT); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void assertValueIsEmptyForAnEmptyMap() throws Exception { | ||||
| 		new JsonPathExpectationsHelper("$.emptyMap").assertValueIsEmpty(CONTENT); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void assertValueIsEmptyForIndefinatePathWithEmptyResults() throws Exception { | ||||
| 		new JsonPathExpectationsHelper("$.familyMembers[?(@.name == 'Dilbert')]").assertValueIsEmpty(SIMPSONS); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void assertValueIsEmptyForIndefinatePathWithResults() throws Exception { | ||||
| 		String expression = "$.familyMembers[?(@.name == 'Bart')]"; | ||||
| 		exception.expect(AssertionError.class); | ||||
| 		exception.expectMessage("Expected an empty value at JSON path \"" + expression | ||||
| 				+ "\" but found: [{\"name\":\"Bart\"}]"); | ||||
| 		new JsonPathExpectationsHelper(expression).assertValueIsEmpty(SIMPSONS); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void assertValueIsEmptyForWhitespace() throws Exception { | ||||
| 		String expression = "$.whitespace"; | ||||
| 		exception.expect(AssertionError.class); | ||||
| 		exception.expectMessage("Expected an empty value at JSON path \"" + expression + "\" but found: '    '"); | ||||
| 		new JsonPathExpectationsHelper(expression).assertValueIsEmpty(CONTENT); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void assertValueIsNotEmptyForString() throws Exception { | ||||
| 		new JsonPathExpectationsHelper("$.str").assertValueIsNotEmpty(CONTENT); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void assertValueIsNotEmptyForNumber() throws Exception { | ||||
| 		new JsonPathExpectationsHelper("$.num").assertValueIsNotEmpty(CONTENT); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void assertValueIsNotEmptyForBoolean() throws Exception { | ||||
| 		new JsonPathExpectationsHelper("$.bool").assertValueIsNotEmpty(CONTENT); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void assertValueIsNotEmptyForArray() throws Exception { | ||||
| 		new JsonPathExpectationsHelper("$.arr").assertValueIsNotEmpty(CONTENT); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void assertValueIsNotEmptyForMap() throws Exception { | ||||
| 		new JsonPathExpectationsHelper("$.colorMap").assertValueIsNotEmpty(CONTENT); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void assertValueIsNotEmptyForIndefinatePathWithResults() throws Exception { | ||||
| 		new JsonPathExpectationsHelper("$.familyMembers[?(@.name == 'Bart')]").assertValueIsNotEmpty(SIMPSONS); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void assertValueIsNotEmptyForIndefinatePathWithEmptyResults() throws Exception { | ||||
| 		String expression = "$.familyMembers[?(@.name == 'Dilbert')]"; | ||||
| 		new JsonPathExpectationsHelper(expression).doesNotExist(SIMPSONS); | ||||
| 		exception.expect(AssertionError.class); | ||||
| 		exception.expectMessage("Expected a non-empty value at JSON path \"" + expression + "\" but found: []"); | ||||
| 		new JsonPathExpectationsHelper(expression).assertValueIsNotEmpty(SIMPSONS); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void assertValueIsNotEmptyForAnEmptyString() throws Exception { | ||||
| 		String expression = "$.emptyString"; | ||||
| 		exception.expect(AssertionError.class); | ||||
| 		exception.expectMessage("Expected a non-empty value at JSON path \"" + expression + "\" but found: ''"); | ||||
| 		new JsonPathExpectationsHelper(expression).assertValueIsNotEmpty(CONTENT); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void assertValueIsNotEmptyForAnEmptyArray() throws Exception { | ||||
| 		String expression = "$.emptyArray"; | ||||
| 		exception.expect(AssertionError.class); | ||||
| 		exception.expectMessage("Expected a non-empty value at JSON path \"" + expression + "\" but found: []"); | ||||
| 		new JsonPathExpectationsHelper(expression).assertValueIsNotEmpty(CONTENT); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void assertValueIsNotEmptyForAnEmptyMap() throws Exception { | ||||
| 		String expression = "$.emptyMap"; | ||||
| 		exception.expect(AssertionError.class); | ||||
| 		exception.expectMessage("Expected a non-empty value at JSON path \"" + expression + "\" but found: {}"); | ||||
| 		new JsonPathExpectationsHelper(expression).assertValueIsNotEmpty(CONTENT); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
|  | @ -134,10 +234,17 @@ public class JsonPathExpectationsHelperTests { | |||
| 		new JsonPathExpectationsHelper("$.str").assertValueIsString(CONTENT); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void assertValueIsStringForAnEmptyString() throws Exception { | ||||
| 		new JsonPathExpectationsHelper("$.emptyString").assertValueIsString(CONTENT); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void assertValueIsStringForNonString() throws Exception { | ||||
| 		String expression = "$.bool"; | ||||
| 		exception.expect(AssertionError.class); | ||||
| 		new JsonPathExpectationsHelper("$.bool").assertValueIsString(CONTENT); | ||||
| 		exception.expectMessage("Expected a string at JSON path \"" + expression + "\" but found: true"); | ||||
| 		new JsonPathExpectationsHelper(expression).assertValueIsString(CONTENT); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
|  | @ -147,8 +254,10 @@ public class JsonPathExpectationsHelperTests { | |||
| 
 | ||||
| 	@Test | ||||
| 	public void assertValueIsNumberForNonNumber() throws Exception { | ||||
| 		String expression = "$.bool"; | ||||
| 		exception.expect(AssertionError.class); | ||||
| 		new JsonPathExpectationsHelper("$.bool").assertValueIsNumber(CONTENT); | ||||
| 		exception.expectMessage("Expected a number at JSON path \"" + expression + "\" but found: true"); | ||||
| 		new JsonPathExpectationsHelper(expression).assertValueIsNumber(CONTENT); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
|  | @ -158,8 +267,10 @@ public class JsonPathExpectationsHelperTests { | |||
| 
 | ||||
| 	@Test | ||||
| 	public void assertValueIsBooleanForNonBoolean() throws Exception { | ||||
| 		String expression = "$.num"; | ||||
| 		exception.expect(AssertionError.class); | ||||
| 		new JsonPathExpectationsHelper("$.num").assertValueIsBoolean(CONTENT); | ||||
| 		exception.expectMessage("Expected a boolean at JSON path \"" + expression + "\" but found: 5"); | ||||
| 		new JsonPathExpectationsHelper(expression).assertValueIsBoolean(CONTENT); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
|  | @ -174,8 +285,10 @@ public class JsonPathExpectationsHelperTests { | |||
| 
 | ||||
| 	@Test | ||||
| 	public void assertValueIsArrayForNonArray() throws Exception { | ||||
| 		String expression = "$.str"; | ||||
| 		exception.expect(AssertionError.class); | ||||
| 		new JsonPathExpectationsHelper("$.str").assertValueIsArray(CONTENT); | ||||
| 		exception.expectMessage("Expected an array at JSON path \"" + expression + "\" but found: 'foo'"); | ||||
| 		new JsonPathExpectationsHelper(expression).assertValueIsArray(CONTENT); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
|  | @ -190,8 +303,10 @@ public class JsonPathExpectationsHelperTests { | |||
| 
 | ||||
| 	@Test | ||||
| 	public void assertValueIsMapForNonMap() throws Exception { | ||||
| 		String expression = "$.str"; | ||||
| 		exception.expect(AssertionError.class); | ||||
| 		new JsonPathExpectationsHelper("$.str").assertValueIsMap(CONTENT); | ||||
| 		exception.expectMessage("Expected a map at JSON path \"" + expression + "\" but found: 'foo'"); | ||||
| 		new JsonPathExpectationsHelper(expression).assertValueIsMap(CONTENT); | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
|  |  | |||
|  | @ -33,13 +33,14 @@ import static org.hamcrest.CoreMatchers.*; | |||
| public class JsonPathRequestMatchersTests { | ||||
| 
 | ||||
| 	private static final String REQUEST_CONTENT = "{" + // | ||||
| 			"'str':        'foo',           " + // | ||||
| 			"'num':        5,               " + // | ||||
| 			"'bool':       true,            " + // | ||||
| 			"'arr':        [42],            " + // | ||||
| 			"'emptyArray': [],              " + // | ||||
| 			"'colorMap':   {'red': 'rojo'}, " + // | ||||
| 			"'emptyMap':   {}               " + // | ||||
| 			"'str':         'foo',           " + // | ||||
| 			"'num':         5,               " + // | ||||
| 			"'bool':        true,            " + // | ||||
| 			"'arr':         [42],            " + // | ||||
| 			"'colorMap':    {'red': 'rojo'}, " + // | ||||
| 			"'emptyString': '',              " + // | ||||
| 			"'emptyArray':  [],              " + // | ||||
| 			"'emptyMap':    {}               " + // | ||||
| 	"}"; | ||||
| 
 | ||||
| 	private static final MockClientHttpRequest request = new MockClientHttpRequest(); | ||||
|  | @ -114,6 +115,61 @@ public class JsonPathRequestMatchersTests { | |||
| 		new JsonPathRequestMatchers("$.emptyMap").doesNotExist().match(request); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void isEmptyForAnEmptyString() throws Exception { | ||||
| 		new JsonPathRequestMatchers("$.emptyString").isEmpty().match(request); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void isEmptyForAnEmptyArray() throws Exception { | ||||
| 		new JsonPathRequestMatchers("$.emptyArray").isEmpty().match(request); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void isEmptyForAnEmptyMap() throws Exception { | ||||
| 		new JsonPathRequestMatchers("$.emptyMap").isEmpty().match(request); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void isNotEmptyForString() throws Exception { | ||||
| 		new JsonPathRequestMatchers("$.str").isNotEmpty().match(request); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void isNotEmptyForNumber() throws Exception { | ||||
| 		new JsonPathRequestMatchers("$.num").isNotEmpty().match(request); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void isNotEmptyForBoolean() throws Exception { | ||||
| 		new JsonPathRequestMatchers("$.bool").isNotEmpty().match(request); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void isNotEmptyForArray() throws Exception { | ||||
| 		new JsonPathRequestMatchers("$.arr").isNotEmpty().match(request); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void isNotEmptyForMap() throws Exception { | ||||
| 		new JsonPathRequestMatchers("$.colorMap").isNotEmpty().match(request); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test(expected = AssertionError.class) | ||||
| 	public void isNotEmptyForAnEmptyString() throws Exception { | ||||
| 		new JsonPathRequestMatchers("$.emptyString").isNotEmpty().match(request); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test(expected = AssertionError.class) | ||||
| 	public void isNotEmptyForAnEmptyArray() throws Exception { | ||||
| 		new JsonPathRequestMatchers("$.emptyArray").isNotEmpty().match(request); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test(expected = AssertionError.class) | ||||
| 	public void isNotEmptyForAnEmptyMap() throws Exception { | ||||
| 		new JsonPathRequestMatchers("$.emptyMap").isNotEmpty().match(request); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void isArray() throws Exception { | ||||
| 		new JsonPathRequestMatchers("$.arr").isArray().match(request); | ||||
|  |  | |||
|  | @ -33,13 +33,14 @@ import org.springframework.test.web.servlet.StubMvcResult; | |||
| public class JsonPathResultMatchersTests { | ||||
| 
 | ||||
| 	private static final String RESPONSE_CONTENT = "{" + // | ||||
| 			"'str':        'foo',           " + // | ||||
| 			"'num':        5,               " + // | ||||
| 			"'bool':       true,            " + // | ||||
| 			"'arr':        [42],            " + // | ||||
| 			"'emptyArray': [],              " + // | ||||
| 			"'colorMap':   {'red': 'rojo'}, " + // | ||||
| 			"'emptyMap':   {}               " + // | ||||
| 			"'str':         'foo',           " + // | ||||
| 			"'num':         5,               " + // | ||||
| 			"'bool':        true,            " + // | ||||
| 			"'arr':         [42],            " + // | ||||
| 			"'colorMap':    {'red': 'rojo'}, " + // | ||||
| 			"'emptyString': '',              " + // | ||||
| 			"'emptyArray':  [],              " + // | ||||
| 			"'emptyMap':    {}               " + // | ||||
| 	"}"; | ||||
| 
 | ||||
| 	private static final StubMvcResult stubMvcResult; | ||||
|  | @ -117,6 +118,61 @@ public class JsonPathResultMatchersTests { | |||
| 		new JsonPathResultMatchers("$.emptyMap").doesNotExist().match(stubMvcResult); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void isEmptyForAnEmptyString() throws Exception { | ||||
| 		new JsonPathResultMatchers("$.emptyString").isEmpty().match(stubMvcResult); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void isEmptyForAnEmptyArray() throws Exception { | ||||
| 		new JsonPathResultMatchers("$.emptyArray").isEmpty().match(stubMvcResult); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void isEmptyForAnEmptyMap() throws Exception { | ||||
| 		new JsonPathResultMatchers("$.emptyMap").isEmpty().match(stubMvcResult); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void isNotEmptyForString() throws Exception { | ||||
| 		new JsonPathResultMatchers("$.str").isNotEmpty().match(stubMvcResult); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void isNotEmptyForNumber() throws Exception { | ||||
| 		new JsonPathResultMatchers("$.num").isNotEmpty().match(stubMvcResult); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void isNotEmptyForBoolean() throws Exception { | ||||
| 		new JsonPathResultMatchers("$.bool").isNotEmpty().match(stubMvcResult); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void isNotEmptyForArray() throws Exception { | ||||
| 		new JsonPathResultMatchers("$.arr").isNotEmpty().match(stubMvcResult); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void isNotEmptyForMap() throws Exception { | ||||
| 		new JsonPathResultMatchers("$.colorMap").isNotEmpty().match(stubMvcResult); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test(expected = AssertionError.class) | ||||
| 	public void isNotEmptyForAnEmptyString() throws Exception { | ||||
| 		new JsonPathResultMatchers("$.emptyString").isNotEmpty().match(stubMvcResult); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test(expected = AssertionError.class) | ||||
| 	public void isNotEmptyForAnEmptyArray() throws Exception { | ||||
| 		new JsonPathResultMatchers("$.emptyArray").isNotEmpty().match(stubMvcResult); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test(expected = AssertionError.class) | ||||
| 	public void isNotEmptyForAnEmptyMap() throws Exception { | ||||
| 		new JsonPathResultMatchers("$.emptyMap").isNotEmpty().match(stubMvcResult); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void isArray() throws Exception { | ||||
| 		new JsonPathResultMatchers("$.arr").isArray().match(stubMvcResult); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue