From 03e97890dc8411c7c7e92ec3a5f69b2816fb3468 Mon Sep 17 00:00:00 2001 From: Jochen Berger Date: Mon, 13 May 2013 13:08:24 +0200 Subject: [PATCH] add some tests --- .../java/com/jayway/jsonpath/FilterTest.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/json-path/src/test/java/com/jayway/jsonpath/FilterTest.java b/json-path/src/test/java/com/jayway/jsonpath/FilterTest.java index 77cd22ca..2ee3a0e2 100644 --- a/json-path/src/test/java/com/jayway/jsonpath/FilterTest.java +++ b/json-path/src/test/java/com/jayway/jsonpath/FilterTest.java @@ -1,5 +1,7 @@ package com.jayway.jsonpath; +import net.minidev.json.parser.JSONParser; + import org.junit.Test; import java.util.Collections; @@ -382,5 +384,41 @@ public class FilterTest { assertEquals(1, res.get(0).intValue()); } + + @Test + public void filters_can_contain_json_path_expressions() throws Exception { + Object doc = JsonModel.model(DOCUMENT).getJsonObject(); + + assertTrue(filter(where("$.store..price").gt(10)).accept(doc)); + assertFalse(filter(where("$.store..price").gte(100)).accept(doc)); + assertTrue(filter(where("$.store..category").ne("fiction")).accept(doc)); + assertFalse(filter(where("$.store.bicycle.color").ne("red")).accept(doc)); + assertTrue(filter(where("$.store.bicycle.color").ne("blue")).accept(doc)); + assertTrue(filter(where("$.store..color").exists(true)).accept(doc)); + assertFalse(filter(where("$.store..flavor").exists(true)).accept(doc)); + assertTrue(filter(where("$.store..color").regex(Pattern.compile("^r.d$"))).accept(doc)); + assertTrue(filter(where("$.store..color").type(String.class)).accept(doc)); + assertTrue(filter(where("$.store..price").is(12.99)).accept(doc)); + assertFalse(filter(where("$.store..price").is(13.99)).accept(doc)); + + } + + @Test + public void collection_based_filters_cannot_be_applied_to_multi_level_expressions(){ + + try{ + where("$.store.*").size(4); + fail("This should have thrown an exception"); + } catch(IllegalArgumentException e){ + + } + + try{ + where("$.store.*").in("foo"); + fail("This should have thrown an exception"); + } catch(IllegalArgumentException e){ + + } + } }