@Test void predicatePathTokenToStringTest() { final String expression = "$.store.book[?(@.title == 'Book A')].price"; JsonPath p = JsonPath.compile(expression); assertThat(p.getPath()).isEqualTo(expression); }
Yields
org.opentest4j.AssertionFailedError: expected: "$.store.book[?(@.title == 'Book A')].price" but was: "$['store']['book'][?]['price']"
Due to PredicatePathToken getPathFragment()
simply printing [?]
@Override public String getPathFragment() { StringBuilder sb = new StringBuilder(); sb.append("["); for(int i = 0; i < predicates.size(); i++){ if(i != 0){ sb.append(","); } sb.append("?"); } sb.append("]"); return sb.toString(); }
Is this intentional