From f836244feaaf2ca08aef00908c227e04dcc868ce Mon Sep 17 00:00:00 2001 From: Kalle Stenflo Date: Wed, 14 Oct 2015 21:59:56 +0200 Subject: [PATCH] How to match "(left instanceof Number && right instanceof Number)" in safeCompare #90 --- .../com/jayway/jsonpath/old/IssuesTest.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/json-path/src/test/java/com/jayway/jsonpath/old/IssuesTest.java b/json-path/src/test/java/com/jayway/jsonpath/old/IssuesTest.java index cc3e046c..b1844c82 100644 --- a/json-path/src/test/java/com/jayway/jsonpath/old/IssuesTest.java +++ b/json-path/src/test/java/com/jayway/jsonpath/old/IssuesTest.java @@ -844,4 +844,35 @@ public class IssuesTest extends BaseTest { Assertions.assertThat(result).isEqualTo("value"); } + + @Test + public void issue_90() { + + String json = "{\n" + + " \"store\": {\n" + + " \"book\": [\n" + + " {\n" + + " \"price\": \"120\"\n" + + " },\n" + + " {\n" + + " \"price\": 8.95\n" + + " },\n" + + " {\n" + + " \"price\": 12.99\n" + + " },\n" + + " {\n" + + " \"price\": 8.99\n" + + " },\n" + + " {\n" + + " \"price\": 22.99\n" + + " }\n" + + " ]\n" + + " },\n" + + " \"expensive\": 10\n" + + "}"; + + List numbers = JsonPath.read(json, "$.store.book[?(@.price <= 90)].price"); + + assertThat(numbers).containsExactly(8.95D, 12.99D, 8.99D, 22.99D); + } }