JsonPath仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
1.7 KiB

package com.jayway.jsonassert.impl;
import com.jayway.jsonassert.JsonAsserter;
import com.jayway.jsonpath.JsonPath;
import com.jayway.jsonpath.PathUtil;
import org.hamcrest.Description;
import org.hamcrest.Matcher;
import org.hamcrest.MatcherAssert;
import java.text.ParseException;
import java.util.List;
import static org.hamcrest.Matchers.*;
/**
* User: kalle stenflo
* Date: 1/21/11
* Time: 3:43 PM
*/
public class JsonAsserterImpl implements JsonAsserter {
private final Object jsonObject;
/**
* Instantiates a new JSONAsserter
*
* @param jsonObject the object to make asserts on
*/
public JsonAsserterImpl(Object jsonObject) {
this.jsonObject = jsonObject;
}
/**
* {@inheritDoc}
*/
@SuppressWarnings("unchecked")
public <T> JsonAsserter assertThat(String path, Matcher<T> matcher) {
String reason = "When processing json path: " + path;
if(PathUtil.isPathDefinite(path)){
MatcherAssert.assertThat(reason, JsonPath.<T>readOne(jsonObject, path), matcher);
}
else {
MatcherAssert.assertThat(reason, (T) JsonPath.<T>read(jsonObject, path), matcher);
}
return this;
}
/**
* {@inheritDoc}
*/
public <T> JsonAsserter assertEquals(String path, T expected) {
return assertThat(path, equalTo(expected));
}
/**
* {@inheritDoc}
*/
public JsonAsserter assertNull(String path) {
return assertThat(path, nullValue());
}
/**
* {@inheritDoc}
*/
public <T> JsonAsserter assertNotNull(String path) {
return assertThat(path, notNullValue());
}
/**
* {@inheritDoc}
*/
public JsonAsserter and() {
return this;
}
}