### Question:
JsonContext implements DocumentContext { @Override public <T> T read(String path, Predicate... filters) { notEmpty(path, "path can not be null or empty"); return read(pathFromCache(path, filters)); } JsonContext(Object json, Configuration configuration); @Override Configuration configuration(); @Override Object json(); @Override String jsonString(); @Override T read(String path, Predicate... filters); @Override T read(String path, Class<T> type, Predicate... filters); @Override T read(JsonPath path); @Override T read(JsonPath path, Class<T> type); @Override T read(JsonPath path, TypeRef<T> type); @Override T read(String path, TypeRef<T> type); @Override ReadContext limit(int maxResults); @Override ReadContext withListeners(EvaluationListener... listener); @Override DocumentContext set(String path, Object newValue, Predicate... filters); @Override DocumentContext set(JsonPath path, Object newValue); @Override DocumentContext map(String path, MapFunction mapFunction, Predicate... filters); @Override DocumentContext map(JsonPath path, MapFunction mapFunction); @Override DocumentContext delete(String path, Predicate... filters); @Override DocumentContext delete(JsonPath path); @Override DocumentContext add(String path, Object value, Predicate... filters); @Override DocumentContext add(JsonPath path, Object value); @Override DocumentContext put(String path, String key, Object value, Predicate... filters); @Override DocumentContext renameKey(String path, String oldKeyName, String newKeyName, Predicate... filters); @Override DocumentContext renameKey(JsonPath path, String oldKeyName, String newKeyName); @Override DocumentContext put(JsonPath path, String key, Object value);  }### Answer:
@Test public void cached_path_with_predicates() { Filter feq = Filter.filter(Criteria.where("category").eq("reference")); Filter fne = Filter.filter(Criteria.where("category").ne("reference")); DocumentContext JsonDoc = JsonPath.parse(JSON_DOCUMENT); List<String> eq = JsonDoc.read("$.store.book[?].category", feq); List<String> ne = JsonDoc.read("$.store.book[?].category", fne); Assertions.assertThat(eq).contains("reference"); Assertions.assertThat(ne).doesNotContain("reference"); }