@Test public void a_ne_filter_can_be_serialized() { String filter = filter(where("a").ne(1)).toString(); String parsed = parse("[?(@['a'] != 1)]").toString(); assertThat(filter).isEqualTo(parsed); }
@Test public void double_ne_evals() { assertThat(filter(where("double-key").ne(10.1D)).apply(createPredicateContext(json))).isEqualTo(false); assertThat(filter(where("double-key").ne(10.10D)).apply(createPredicateContext(json))).isEqualTo(false); assertThat(filter(where("double-key").ne(10.11D)).apply(createPredicateContext(json))).isEqualTo(true); }
@Test public void null_ne_evals() { assertThat(filter(where("null-key").ne(null)).apply(createPredicateContext(json))).isEqualTo(false); assertThat(filter(where("null-key").ne("666")).apply(createPredicateContext(json))).isEqualTo(true); assertThat(filter(where("string-key").ne(null)).apply(createPredicateContext(json))).isEqualTo(true); }
@Test public void ne_filters_evaluates() throws Exception { final Map<String, Object> check = new HashMap<String, Object>(); check.put("foo", "foo"); check.put("bar", null); assertTrue(filter(where("foo").ne(null)).apply(createPredicateContext(check))); assertTrue(filter(where("foo").ne("not foo")).apply(createPredicateContext(check))); assertFalse(filter(where("foo").ne("foo")).apply(createPredicateContext(check))); assertFalse(filter(where("bar").ne(null)).apply(createPredicateContext(check))); }
@Test public void filters_can_contain_json_path_expressions() throws Exception { Object doc = Configuration.defaultConfiguration().jsonProvider().parse(DOCUMENT); assertFalse(filter(where("$.store.bicycle.color").ne("red")).apply(createPredicateContext(doc))); }
@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"); }
@Bean public Predicate jsonPathFilter() { return Filter.filter(Criteria.where("isbn").exists(true).and("category").ne("fiction")); }