From 146546ec021b3386cd544221e40c66eca88c13db Mon Sep 17 00:00:00 2001 From: fpinatares Date: Fri, 21 Oct 2022 19:13:01 +0200 Subject: [PATCH] Creates function to know if a jsonPath is a function or not --- .../src/main/java/com/jayway/jsonpath/JsonPath.java | 11 +++++++++++ .../java/com/jayway/jsonpath/PathCompilerTest.java | 6 ++++++ 2 files changed, 17 insertions(+) diff --git a/json-path/src/main/java/com/jayway/jsonpath/JsonPath.java b/json-path/src/main/java/com/jayway/jsonpath/JsonPath.java index 01c7db03..2965e538 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/JsonPath.java +++ b/json-path/src/main/java/com/jayway/jsonpath/JsonPath.java @@ -496,6 +496,17 @@ public class JsonPath { } } + /** + * As JsonPath accepts a vary number of functions like min(), max(), + * avg(), stddev(), length(), sum(), keys(), concat(X), append(X), + * this function will return true if the path is a function + * + * @return true if the path is a function + */ + public Boolean isFunctionPath() { + return path.isFunctionPath(); + } + // -------------------------------------------------------- // // Static factory methods diff --git a/json-path/src/test/java/com/jayway/jsonpath/PathCompilerTest.java b/json-path/src/test/java/com/jayway/jsonpath/PathCompilerTest.java index ef220619..e65159d9 100644 --- a/json-path/src/test/java/com/jayway/jsonpath/PathCompilerTest.java +++ b/json-path/src/test/java/com/jayway/jsonpath/PathCompilerTest.java @@ -304,6 +304,12 @@ public class PathCompilerTest { assertThat(compile("$.aaa.foo(5,10,15)").toString()).isEqualTo("$['aaa'].foo(...)"); } + @Test + public void path_is_a_function() { + assertThat(compile("concat($.aaa, $.bbb)").isFunctionPath()).isTrue(); + assertThat(compile("$.aaa").isFunctionPath()).isFalse(); + } + @Test(expected = InvalidPathException.class) public void array_indexes_must_be_separated_by_commas() { compile("$[0, 1, 2 4]");